ofs | hex dump | ascii |
---|
0000 | 04 08 6f 3a 20 41 63 74 69 76 65 53 75 70 70 6f 72 74 3a 3a 43 61 63 68 65 3a 3a 45 6e 74 72 79 | ..o:.ActiveSupport::Cache::Entry |
0020 | 09 3a 10 40 63 72 65 61 74 65 64 5f 61 74 66 19 31 33 34 37 39 37 35 38 38 35 2e 37 30 39 37 36 | .:.@created_atf.1347975885.70976 |
0040 | 39 00 6c db 3a 0b 40 76 61 6c 75 65 22 02 92 4d 04 08 7b 11 22 16 64 65 70 65 6e 64 65 6e 63 79 | 9.l.:.@value"..M..{.".dependency |
0060 | 5f 64 69 67 65 73 74 22 25 31 38 37 32 39 34 38 34 32 31 33 32 65 62 36 62 38 35 33 34 37 35 37 | _digest"%187294842132eb6b8534757 |
0080 | 36 34 30 37 39 30 39 32 63 22 0b 6c 65 6e 67 74 68 69 02 0d 4b 22 0b 73 6f 75 72 63 65 22 02 0d | 64079092c".lengthi..K".source".. |
00a0 | 4b 2f 2a 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 33 2d 32 30 30 35 20 20 | K/*..*.Copyright.(c).2003-2005.. |
00c0 | 54 6f 6d 20 57 75 0a 20 2a 20 41 6c 6c 20 52 69 67 68 74 73 20 52 65 73 65 72 76 65 64 2e 0a 20 | Tom.Wu..*.All.Rights.Reserved... |
00e0 | 2a 0a 20 2a 20 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 68 65 72 65 62 79 20 67 72 61 6e 74 65 | *..*.Permission.is.hereby.grante |
0100 | 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 65 72 73 6f 6e | d,.free.of.charge,.to.any.person |
0120 | 20 6f 62 74 61 69 6e 69 6e 67 0a 20 2a 20 61 20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 73 6f 66 | .obtaining..*.a.copy.of.this.sof |
0140 | 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 | tware.and.associated.documentati |
0160 | 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 0a 20 2a 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 6f | on.files.(the..*."Software"),.to |
0180 | 20 64 65 61 6c 20 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 65 | .deal.in.the.Software.without.re |
01a0 | 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 20 2a 20 77 69 74 68 6f 75 74 20 | striction,.including..*.without. |
01c0 | 6c 69 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 20 74 6f 20 75 73 65 2c 20 63 6f | limitation.the.rights.to.use,.co |
01e0 | 70 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 0a 20 2a 20 64 | py,.modify,.merge,.publish,..*.d |
0200 | 69 73 74 72 69 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 | istribute,.sublicense,.and/or.se |
0220 | 6c 6c 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 | ll.copies.of.the.Software,.and.t |
0240 | 6f 0a 20 2a 20 70 65 72 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 | o..*.permit.persons.to.whom.the. |
0260 | 53 6f 66 74 77 61 72 65 20 69 73 20 66 75 72 6e 69 73 68 65 64 20 74 6f 20 64 6f 20 73 6f 2c 20 | Software.is.furnished.to.do.so,. |
0280 | 73 75 62 6a 65 63 74 20 74 6f 0a 20 2a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 | subject.to..*.the.following.cond |
02a0 | 69 74 69 6f 6e 73 3a 0a 20 2a 0a 20 2a 20 54 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 | itions:..*..*.The.above.copyrigh |
02c0 | 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 | t.notice.and.this.permission.not |
02e0 | 69 63 65 20 73 68 61 6c 6c 20 62 65 0a 20 2a 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6c 6c 20 | ice.shall.be..*.included.in.all. |
0300 | 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f | copies.or.substantial.portions.o |
0320 | 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 20 2a 0a 20 2a 20 54 48 45 20 53 4f 46 54 57 41 | f.the.Software...*..*.THE.SOFTWA |
0340 | 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 2d 49 53 22 20 41 4e 44 20 57 49 54 48 4f | RE.IS.PROVIDED."AS-IS".AND.WITHO |
0360 | 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 0a 20 2a 20 45 58 50 | UT.WARRANTY.OF.ANY.KIND,...*.EXP |
0380 | 52 45 53 53 2c 20 49 4d 50 4c 49 45 44 20 4f 52 20 4f 54 48 45 52 57 49 53 45 2c 20 49 4e 43 4c | RESS,.IMPLIED.OR.OTHERWISE,.INCL |
03a0 | 55 44 49 4e 47 20 57 49 54 48 4f 55 54 20 4c 49 4d 49 54 41 54 49 4f 4e 2c 20 41 4e 59 20 0a 20 | UDING.WITHOUT.LIMITATION,.ANY... |
03c0 | 2a 20 57 41 52 52 41 4e 54 59 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 4f 52 | *.WARRANTY.OF.MERCHANTABILITY.OR |
03e0 | 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 | .FITNESS.FOR.A.PARTICULAR.PURPOS |
0400 | 45 2e 20 20 0a 20 2a 0a 20 2a 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 4f 4d | E.....*..*.IN.NO.EVENT.SHALL.TOM |
0420 | 20 57 55 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 53 50 45 43 49 41 4c 2c 20 49 | .WU.BE.LIABLE.FOR.ANY.SPECIAL,.I |
0440 | 4e 43 49 44 45 4e 54 41 4c 2c 0a 20 2a 20 49 4e 44 49 52 45 43 54 20 4f 52 20 43 4f 4e 53 45 51 | NCIDENTAL,..*.INDIRECT.OR.CONSEQ |
0460 | 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 4f 52 20 | UENTIAL.DAMAGES.OF.ANY.KIND,.OR. |
0480 | 41 4e 59 20 44 41 4d 41 47 45 53 20 57 48 41 54 53 4f 45 56 45 52 0a 20 2a 20 52 45 53 55 4c 54 | ANY.DAMAGES.WHATSOEVER..*.RESULT |
04a0 | 49 4e 47 20 46 52 4f 4d 20 4c 4f 53 53 20 4f 46 20 55 53 45 2c 20 44 41 54 41 20 4f 52 20 50 52 | ING.FROM.LOSS.OF.USE,.DATA.OR.PR |
04c0 | 4f 46 49 54 53 2c 20 57 48 45 54 48 45 52 20 4f 52 20 4e 4f 54 20 41 44 56 49 53 45 44 20 4f 46 | OFITS,.WHETHER.OR.NOT.ADVISED.OF |
04e0 | 0a 20 2a 20 54 48 45 20 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 20 44 41 4d 41 47 45 2c 20 41 | ..*.THE.POSSIBILITY.OF.DAMAGE,.A |
0500 | 4e 44 20 4f 4e 20 41 4e 59 20 54 48 45 4f 52 59 20 4f 46 20 4c 49 41 42 49 4c 49 54 59 2c 20 41 | ND.ON.ANY.THEORY.OF.LIABILITY,.A |
0520 | 52 49 53 49 4e 47 20 4f 55 54 0a 20 2a 20 4f 46 20 4f 52 20 49 4e 20 43 4f 4e 4e 45 43 54 49 4f | RISING.OUT..*.OF.OR.IN.CONNECTIO |
0540 | 4e 20 57 49 54 48 20 54 48 45 20 55 53 45 20 4f 52 20 50 45 52 46 4f 52 4d 41 4e 43 45 20 4f 46 | N.WITH.THE.USE.OR.PERFORMANCE.OF |
0560 | 20 54 48 49 53 20 53 4f 46 54 57 41 52 45 2e 0a 20 2a 0a 20 2a 20 49 6e 20 61 64 64 69 74 69 6f | .THIS.SOFTWARE...*..*.In.additio |
0580 | 6e 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 20 61 70 70 6c 69 | n,.the.following.condition.appli |
05a0 | 65 73 3a 0a 20 2a 0a 20 2a 20 41 6c 6c 20 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 6d 75 | es:..*..*.All.redistributions.mu |
05c0 | 73 74 20 72 65 74 61 69 6e 20 61 6e 20 69 6e 74 61 63 74 20 63 6f 70 79 20 6f 66 20 74 68 69 73 | st.retain.an.intact.copy.of.this |
05e0 | 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 0a 20 2a 20 61 6e 64 20 64 69 73 63 6c 61 69 | .copyright.notice..*.and.disclai |
0600 | 6d 65 72 2e 0a 20 2a 2f 0a 0a 2f 2f 20 45 78 74 65 6e 64 65 64 20 4a 61 76 61 53 63 72 69 70 74 | mer...*/..//.Extended.JavaScript |
0620 | 20 42 4e 20 66 75 6e 63 74 69 6f 6e 73 2c 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 52 53 41 20 | .BN.functions,.required.for.RSA. |
0640 | 70 72 69 76 61 74 65 20 6f 70 73 2e 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 0a 66 75 6e 63 74 69 | private.ops...//.(public).functi |
0660 | 6f 6e 20 62 6e 43 6c 6f 6e 65 28 29 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 20 74 68 | on.bnClone().{.var.r.=.nbi();.th |
0680 | 69 73 2e 63 6f 70 79 54 6f 28 72 29 3b 20 72 65 74 75 72 6e 20 72 3b 20 7d 0a 0a 2f 2f 20 28 70 | is.copyTo(r);.return.r;.}..//.(p |
06a0 | 75 62 6c 69 63 29 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 61 73 20 69 6e 74 65 67 65 72 0a 66 | ublic).return.value.as.integer.f |
06c0 | 75 6e 63 74 69 6f 6e 20 62 6e 49 6e 74 56 61 6c 75 65 28 29 20 7b 0a 20 20 69 66 28 74 68 69 73 | unction.bnIntValue().{...if(this |
06e0 | 2e 73 20 3c 20 30 29 20 7b 0a 20 20 20 20 69 66 28 74 68 69 73 2e 74 20 3d 3d 20 31 29 20 72 65 | .s.<.0).{.....if(this.t.==.1).re |
0700 | 74 75 72 6e 20 74 68 69 73 5b 30 5d 2d 74 68 69 73 2e 44 56 3b 0a 20 20 20 20 65 6c 73 65 20 69 | turn.this[0]-this.DV;.....else.i |
0720 | 66 28 74 68 69 73 2e 74 20 3d 3d 20 30 29 20 72 65 74 75 72 6e 20 2d 31 3b 0a 20 20 7d 0a 20 20 | f(this.t.==.0).return.-1;...}... |
0740 | 65 6c 73 65 20 69 66 28 74 68 69 73 2e 74 20 3d 3d 20 31 29 20 72 65 74 75 72 6e 20 74 68 69 73 | else.if(this.t.==.1).return.this |
0760 | 5b 30 5d 3b 0a 20 20 65 6c 73 65 20 69 66 28 74 68 69 73 2e 74 20 3d 3d 20 30 29 20 72 65 74 75 | [0];...else.if(this.t.==.0).retu |
0780 | 72 6e 20 30 3b 0a 20 20 2f 2f 20 61 73 73 75 6d 65 73 20 31 36 20 3c 20 44 42 20 3c 20 33 32 0a | rn.0;...//.assumes.16.<.DB.<.32. |
07a0 | 20 20 72 65 74 75 72 6e 20 28 28 74 68 69 73 5b 31 5d 26 28 28 31 3c 3c 28 33 32 2d 74 68 69 73 | ..return.((this[1]&((1<<(32-this |
07c0 | 2e 44 42 29 29 2d 31 29 29 3c 3c 74 68 69 73 2e 44 42 29 7c 74 68 69 73 5b 30 5d 3b 0a 7d 0a 0a | .DB))-1))<<this.DB)|this[0];.}.. |
07e0 | 2f 2f 20 28 70 75 62 6c 69 63 29 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 61 73 20 62 79 74 65 | //.(public).return.value.as.byte |
0800 | 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 42 79 74 65 56 61 6c 75 65 28 29 20 7b 20 72 65 74 75 72 6e | .function.bnByteValue().{.return |
0820 | 20 28 74 68 69 73 2e 74 3d 3d 30 29 3f 74 68 69 73 2e 73 3a 28 74 68 69 73 5b 30 5d 3c 3c 32 34 | .(this.t==0)?this.s:(this[0]<<24 |
0840 | 29 3e 3e 32 34 3b 20 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 72 65 74 75 72 6e 20 76 61 6c | )>>24;.}..//.(public).return.val |
0860 | 75 65 20 61 73 20 73 68 6f 72 74 20 28 61 73 73 75 6d 65 73 20 44 42 3e 3d 31 36 29 0a 66 75 6e | ue.as.short.(assumes.DB>=16).fun |
0880 | 63 74 69 6f 6e 20 62 6e 53 68 6f 72 74 56 61 6c 75 65 28 29 20 7b 20 72 65 74 75 72 6e 20 28 74 | ction.bnShortValue().{.return.(t |
08a0 | 68 69 73 2e 74 3d 3d 30 29 3f 74 68 69 73 2e 73 3a 28 74 68 69 73 5b 30 5d 3c 3c 31 36 29 3e 3e | his.t==0)?this.s:(this[0]<<16)>> |
08c0 | 31 36 3b 20 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 72 65 74 75 72 6e 20 78 20 73 | 16;.}..//.(protected).return.x.s |
08e0 | 2e 74 2e 20 72 5e 78 20 3c 20 44 56 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 43 68 75 6e 6b 53 69 | .t..r^x.<.DV.function.bnpChunkSi |
0900 | 7a 65 28 72 29 20 7b 20 72 65 74 75 72 6e 20 4d 61 74 68 2e 66 6c 6f 6f 72 28 4d 61 74 68 2e 4c | ze(r).{.return.Math.floor(Math.L |
0920 | 4e 32 2a 74 68 69 73 2e 44 42 2f 4d 61 74 68 2e 6c 6f 67 28 72 29 29 3b 20 7d 0a 0a 2f 2f 20 28 | N2*this.DB/Math.log(r));.}..//.( |
0940 | 70 75 62 6c 69 63 29 20 30 20 69 66 20 74 68 69 73 20 3d 3d 20 30 2c 20 31 20 69 66 20 74 68 69 | public).0.if.this.==.0,.1.if.thi |
0960 | 73 20 3e 20 30 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 53 69 67 4e 75 6d 28 29 20 7b 0a 20 20 69 66 | s.>.0.function.bnSigNum().{...if |
0980 | 28 74 68 69 73 2e 73 20 3c 20 30 29 20 72 65 74 75 72 6e 20 2d 31 3b 0a 20 20 65 6c 73 65 20 69 | (this.s.<.0).return.-1;...else.i |
09a0 | 66 28 74 68 69 73 2e 74 20 3c 3d 20 30 20 7c 7c 20 28 74 68 69 73 2e 74 20 3d 3d 20 31 20 26 26 | f(this.t.<=.0.||.(this.t.==.1.&& |
09c0 | 20 74 68 69 73 5b 30 5d 20 3c 3d 20 30 29 29 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 65 6c 73 65 | .this[0].<=.0)).return.0;...else |
09e0 | 20 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 63 6f 6e | .return.1;.}..//.(protected).con |
0a00 | 76 65 72 74 20 74 6f 20 72 61 64 69 78 20 73 74 72 69 6e 67 0a 66 75 6e 63 74 69 6f 6e 20 62 6e | vert.to.radix.string.function.bn |
0a20 | 70 54 6f 52 61 64 69 78 28 62 29 20 7b 0a 20 20 69 66 28 62 20 3d 3d 20 6e 75 6c 6c 29 20 62 20 | pToRadix(b).{...if(b.==.null).b. |
0a40 | 3d 20 31 30 3b 0a 20 20 69 66 28 74 68 69 73 2e 73 69 67 6e 75 6d 28 29 20 3d 3d 20 30 20 7c 7c | =.10;...if(this.signum().==.0.|| |
0a60 | 20 62 20 3c 20 32 20 7c 7c 20 62 20 3e 20 33 36 29 20 72 65 74 75 72 6e 20 22 30 22 3b 0a 20 20 | .b.<.2.||.b.>.36).return."0";... |
0a80 | 76 61 72 20 63 73 20 3d 20 74 68 69 73 2e 63 68 75 6e 6b 53 69 7a 65 28 62 29 3b 0a 20 20 76 61 | var.cs.=.this.chunkSize(b);...va |
0aa0 | 72 20 61 20 3d 20 4d 61 74 68 2e 70 6f 77 28 62 2c 63 73 29 3b 0a 20 20 76 61 72 20 64 20 3d 20 | r.a.=.Math.pow(b,cs);...var.d.=. |
0ac0 | 6e 62 76 28 61 29 2c 20 79 20 3d 20 6e 62 69 28 29 2c 20 7a 20 3d 20 6e 62 69 28 29 2c 20 72 20 | nbv(a),.y.=.nbi(),.z.=.nbi(),.r. |
0ae0 | 3d 20 22 22 3b 0a 20 20 74 68 69 73 2e 64 69 76 52 65 6d 54 6f 28 64 2c 79 2c 7a 29 3b 0a 20 20 | =."";...this.divRemTo(d,y,z);... |
0b00 | 77 68 69 6c 65 28 79 2e 73 69 67 6e 75 6d 28 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 72 20 3d 20 | while(y.signum().>.0).{.....r.=. |
0b20 | 28 61 2b 7a 2e 69 6e 74 56 61 6c 75 65 28 29 29 2e 74 6f 53 74 72 69 6e 67 28 62 29 2e 73 75 62 | (a+z.intValue()).toString(b).sub |
0b40 | 73 74 72 28 31 29 20 2b 20 72 3b 0a 20 20 20 20 79 2e 64 69 76 52 65 6d 54 6f 28 64 2c 79 2c 7a | str(1).+.r;.....y.divRemTo(d,y,z |
0b60 | 29 3b 0a 20 20 7d 0a 20 20 72 65 74 75 72 6e 20 7a 2e 69 6e 74 56 61 6c 75 65 28 29 2e 74 6f 53 | );...}...return.z.intValue().toS |
0b80 | 74 72 69 6e 67 28 62 29 20 2b 20 72 3b 0a 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 | tring(b).+.r;.}..//.(protected). |
0ba0 | 63 6f 6e 76 65 72 74 20 66 72 6f 6d 20 72 61 64 69 78 20 73 74 72 69 6e 67 0a 66 75 6e 63 74 69 | convert.from.radix.string.functi |
0bc0 | 6f 6e 20 62 6e 70 46 72 6f 6d 52 61 64 69 78 28 73 2c 62 29 20 7b 0a 20 20 74 68 69 73 2e 66 72 | on.bnpFromRadix(s,b).{...this.fr |
0be0 | 6f 6d 49 6e 74 28 30 29 3b 0a 20 20 69 66 28 62 20 3d 3d 20 6e 75 6c 6c 29 20 62 20 3d 20 31 30 | omInt(0);...if(b.==.null).b.=.10 |
0c00 | 3b 0a 20 20 76 61 72 20 63 73 20 3d 20 74 68 69 73 2e 63 68 75 6e 6b 53 69 7a 65 28 62 29 3b 0a | ;...var.cs.=.this.chunkSize(b);. |
0c20 | 20 20 76 61 72 20 64 20 3d 20 4d 61 74 68 2e 70 6f 77 28 62 2c 63 73 29 2c 20 6d 69 20 3d 20 66 | ..var.d.=.Math.pow(b,cs),.mi.=.f |
0c40 | 61 6c 73 65 2c 20 6a 20 3d 20 30 2c 20 77 20 3d 20 30 3b 0a 20 20 66 6f 72 28 76 61 72 20 69 20 | alse,.j.=.0,.w.=.0;...for(var.i. |
0c60 | 3d 20 30 3b 20 69 20 3c 20 73 2e 6c 65 6e 67 74 68 3b 20 2b 2b 69 29 20 7b 0a 20 20 20 20 76 61 | =.0;.i.<.s.length;.++i).{.....va |
0c80 | 72 20 78 20 3d 20 69 6e 74 41 74 28 73 2c 69 29 3b 0a 20 20 20 20 69 66 28 78 20 3c 20 30 29 20 | r.x.=.intAt(s,i);.....if(x.<.0). |
0ca0 | 7b 0a 20 20 20 20 20 20 69 66 28 73 2e 63 68 61 72 41 74 28 69 29 20 3d 3d 20 22 2d 22 20 26 26 | {.......if(s.charAt(i).==."-".&& |
0cc0 | 20 74 68 69 73 2e 73 69 67 6e 75 6d 28 29 20 3d 3d 20 30 29 20 6d 69 20 3d 20 74 72 75 65 3b 0a | .this.signum().==.0).mi.=.true;. |
0ce0 | 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 77 20 3d 20 62 2a | ......continue;.....}.....w.=.b* |
0d00 | 77 2b 78 3b 0a 20 20 20 20 69 66 28 2b 2b 6a 20 3e 3d 20 63 73 29 20 7b 0a 20 20 20 20 20 20 74 | w+x;.....if(++j.>=.cs).{.......t |
0d20 | 68 69 73 2e 64 4d 75 6c 74 69 70 6c 79 28 64 29 3b 0a 20 20 20 20 20 20 74 68 69 73 2e 64 41 64 | his.dMultiply(d);.......this.dAd |
0d40 | 64 4f 66 66 73 65 74 28 77 2c 30 29 3b 0a 20 20 20 20 20 20 6a 20 3d 20 30 3b 0a 20 20 20 20 20 | dOffset(w,0);.......j.=.0;...... |
0d60 | 20 77 20 3d 20 30 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 69 66 28 6a 20 3e 20 30 29 20 7b 0a | .w.=.0;.....}...}...if(j.>.0).{. |
0d80 | 20 20 20 20 74 68 69 73 2e 64 4d 75 6c 74 69 70 6c 79 28 4d 61 74 68 2e 70 6f 77 28 62 2c 6a 29 | ....this.dMultiply(Math.pow(b,j) |
0da0 | 29 3b 0a 20 20 20 20 74 68 69 73 2e 64 41 64 64 4f 66 66 73 65 74 28 77 2c 30 29 3b 0a 20 20 7d | );.....this.dAddOffset(w,0);...} |
0dc0 | 0a 20 20 69 66 28 6d 69 29 20 42 69 67 49 6e 74 65 67 65 72 2e 5a 45 52 4f 2e 73 75 62 54 6f 28 | ...if(mi).BigInteger.ZERO.subTo( |
0de0 | 74 68 69 73 2c 74 68 69 73 29 3b 0a 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 61 6c | this,this);.}..//.(protected).al |
0e00 | 74 65 72 6e 61 74 65 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 | ternate.constructor.function.bnp |
0e20 | 46 72 6f 6d 4e 75 6d 62 65 72 28 61 2c 62 2c 63 29 20 7b 0a 20 20 69 66 28 22 6e 75 6d 62 65 72 | FromNumber(a,b,c).{...if("number |
0e40 | 22 20 3d 3d 20 74 79 70 65 6f 66 20 62 29 20 7b 0a 20 20 20 20 2f 2f 20 6e 65 77 20 42 69 67 49 | ".==.typeof.b).{.....//.new.BigI |
0e60 | 6e 74 65 67 65 72 28 69 6e 74 2c 69 6e 74 2c 52 4e 47 29 0a 20 20 20 20 69 66 28 61 20 3c 20 32 | nteger(int,int,RNG).....if(a.<.2 |
0e80 | 29 20 74 68 69 73 2e 66 72 6f 6d 49 6e 74 28 31 29 3b 0a 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 | ).this.fromInt(1);.....else.{... |
0ea0 | 20 20 20 20 74 68 69 73 2e 66 72 6f 6d 4e 75 6d 62 65 72 28 61 2c 63 29 3b 0a 20 20 20 20 20 20 | ....this.fromNumber(a,c);....... |
0ec0 | 69 66 28 21 74 68 69 73 2e 74 65 73 74 42 69 74 28 61 2d 31 29 29 09 2f 2f 20 66 6f 72 63 65 20 | if(!this.testBit(a-1)).//.force. |
0ee0 | 4d 53 42 20 73 65 74 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 62 69 74 77 69 73 65 54 6f 28 42 | MSB.set.........this.bitwiseTo(B |
0f00 | 69 67 49 6e 74 65 67 65 72 2e 4f 4e 45 2e 73 68 69 66 74 4c 65 66 74 28 61 2d 31 29 2c 6f 70 5f | igInteger.ONE.shiftLeft(a-1),op_ |
0f20 | 6f 72 2c 74 68 69 73 29 3b 0a 20 20 20 20 20 20 69 66 28 74 68 69 73 2e 69 73 45 76 65 6e 28 29 | or,this);.......if(this.isEven() |
0f40 | 29 20 74 68 69 73 2e 64 41 64 64 4f 66 66 73 65 74 28 31 2c 30 29 3b 20 2f 2f 20 66 6f 72 63 65 | ).this.dAddOffset(1,0);.//.force |
0f60 | 20 6f 64 64 0a 20 20 20 20 20 20 77 68 69 6c 65 28 21 74 68 69 73 2e 69 73 50 72 6f 62 61 62 6c | .odd.......while(!this.isProbabl |
0f80 | 65 50 72 69 6d 65 28 62 29 29 20 7b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 64 41 64 64 4f 66 | ePrime(b)).{.........this.dAddOf |
0fa0 | 66 73 65 74 28 32 2c 30 29 3b 0a 20 20 20 20 20 20 20 20 69 66 28 74 68 69 73 2e 62 69 74 4c 65 | fset(2,0);.........if(this.bitLe |
0fc0 | 6e 67 74 68 28 29 20 3e 20 61 29 20 74 68 69 73 2e 73 75 62 54 6f 28 42 69 67 49 6e 74 65 67 65 | ngth().>.a).this.subTo(BigIntege |
0fe0 | 72 2e 4f 4e 45 2e 73 68 69 66 74 4c 65 66 74 28 61 2d 31 29 2c 74 68 69 73 29 3b 0a 20 20 20 20 | r.ONE.shiftLeft(a-1),this);..... |
1000 | 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 2f 2f 20 6e 65 | ..}.....}...}...else.{.....//.ne |
1020 | 77 20 42 69 67 49 6e 74 65 67 65 72 28 69 6e 74 2c 52 4e 47 29 0a 20 20 20 20 76 61 72 20 78 20 | w.BigInteger(int,RNG).....var.x. |
1040 | 3d 20 6e 65 77 20 41 72 72 61 79 28 29 2c 20 74 20 3d 20 61 26 37 3b 0a 20 20 20 20 78 2e 6c 65 | =.new.Array(),.t.=.a&7;.....x.le |
1060 | 6e 67 74 68 20 3d 20 28 61 3e 3e 33 29 2b 31 3b 0a 20 20 20 20 62 2e 6e 65 78 74 42 79 74 65 73 | ngth.=.(a>>3)+1;.....b.nextBytes |
1080 | 28 78 29 3b 0a 20 20 20 20 69 66 28 74 20 3e 20 30 29 20 78 5b 30 5d 20 26 3d 20 28 28 31 3c 3c | (x);.....if(t.>.0).x[0].&=.((1<< |
10a0 | 74 29 2d 31 29 3b 20 65 6c 73 65 20 78 5b 30 5d 20 3d 20 30 3b 0a 20 20 20 20 74 68 69 73 2e 66 | t)-1);.else.x[0].=.0;.....this.f |
10c0 | 72 6f 6d 53 74 72 69 6e 67 28 78 2c 32 35 36 29 3b 0a 20 20 7d 0a 7d 0a 0a 2f 2f 20 28 70 75 62 | romString(x,256);...}.}..//.(pub |
10e0 | 6c 69 63 29 20 63 6f 6e 76 65 72 74 20 74 6f 20 62 69 67 65 6e 64 69 61 6e 20 62 79 74 65 20 61 | lic).convert.to.bigendian.byte.a |
1100 | 72 72 61 79 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 54 6f 42 79 74 65 41 72 72 61 79 28 29 20 7b 0a | rray.function.bnToByteArray().{. |
1120 | 20 20 76 61 72 20 69 20 3d 20 74 68 69 73 2e 74 2c 20 72 20 3d 20 6e 65 77 20 41 72 72 61 79 28 | ..var.i.=.this.t,.r.=.new.Array( |
1140 | 29 3b 0a 20 20 72 5b 30 5d 20 3d 20 74 68 69 73 2e 73 3b 0a 20 20 76 61 72 20 70 20 3d 20 74 68 | );...r[0].=.this.s;...var.p.=.th |
1160 | 69 73 2e 44 42 2d 28 69 2a 74 68 69 73 2e 44 42 29 25 38 2c 20 64 2c 20 6b 20 3d 20 30 3b 0a 20 | is.DB-(i*this.DB)%8,.d,.k.=.0;.. |
1180 | 20 69 66 28 69 2d 2d 20 3e 20 30 29 20 7b 0a 20 20 20 20 69 66 28 70 20 3c 20 74 68 69 73 2e 44 | .if(i--.>.0).{.....if(p.<.this.D |
11a0 | 42 20 26 26 20 28 64 20 3d 20 74 68 69 73 5b 69 5d 3e 3e 70 29 20 21 3d 20 28 74 68 69 73 2e 73 | B.&&.(d.=.this[i]>>p).!=.(this.s |
11c0 | 26 74 68 69 73 2e 44 4d 29 3e 3e 70 29 0a 20 20 20 20 20 20 72 5b 6b 2b 2b 5d 20 3d 20 64 7c 28 | &this.DM)>>p).......r[k++].=.d|( |
11e0 | 74 68 69 73 2e 73 3c 3c 28 74 68 69 73 2e 44 42 2d 70 29 29 3b 0a 20 20 20 20 77 68 69 6c 65 28 | this.s<<(this.DB-p));.....while( |
1200 | 69 20 3e 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 69 66 28 70 20 3c 20 38 29 20 7b 0a 20 20 20 20 | i.>=.0).{.......if(p.<.8).{..... |
1220 | 20 20 20 20 64 20 3d 20 28 74 68 69 73 5b 69 5d 26 28 28 31 3c 3c 70 29 2d 31 29 29 3c 3c 28 38 | ....d.=.(this[i]&((1<<p)-1))<<(8 |
1240 | 2d 70 29 3b 0a 20 20 20 20 20 20 20 20 64 20 7c 3d 20 74 68 69 73 5b 2d 2d 69 5d 3e 3e 28 70 2b | -p);.........d.|=.this[--i]>>(p+ |
1260 | 3d 74 68 69 73 2e 44 42 2d 38 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 65 6c 73 65 20 | =this.DB-8);.......}.......else. |
1280 | 7b 0a 20 20 20 20 20 20 20 20 64 20 3d 20 28 74 68 69 73 5b 69 5d 3e 3e 28 70 2d 3d 38 29 29 26 | {.........d.=.(this[i]>>(p-=8))& |
12a0 | 30 78 66 66 3b 0a 20 20 20 20 20 20 20 20 69 66 28 70 20 3c 3d 20 30 29 20 7b 20 70 20 2b 3d 20 | 0xff;.........if(p.<=.0).{.p.+=. |
12c0 | 74 68 69 73 2e 44 42 3b 20 2d 2d 69 3b 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 69 66 | this.DB;.--i;.}.......}.......if |
12e0 | 28 28 64 26 30 78 38 30 29 20 21 3d 20 30 29 20 64 20 7c 3d 20 2d 32 35 36 3b 0a 20 20 20 20 20 | ((d&0x80).!=.0).d.|=.-256;...... |
1300 | 20 69 66 28 6b 20 3d 3d 20 30 20 26 26 20 28 74 68 69 73 2e 73 26 30 78 38 30 29 20 21 3d 20 28 | .if(k.==.0.&&.(this.s&0x80).!=.( |
1320 | 64 26 30 78 38 30 29 29 20 2b 2b 6b 3b 0a 20 20 20 20 20 20 69 66 28 6b 20 3e 20 30 20 7c 7c 20 | d&0x80)).++k;.......if(k.>.0.||. |
1340 | 64 20 21 3d 20 74 68 69 73 2e 73 29 20 72 5b 6b 2b 2b 5d 20 3d 20 64 3b 0a 20 20 20 20 7d 0a 20 | d.!=.this.s).r[k++].=.d;.....}.. |
1360 | 20 7d 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 45 71 75 | .}...return.r;.}..function.bnEqu |
1380 | 61 6c 73 28 61 29 20 7b 20 72 65 74 75 72 6e 28 74 68 69 73 2e 63 6f 6d 70 61 72 65 54 6f 28 61 | als(a).{.return(this.compareTo(a |
13a0 | 29 3d 3d 30 29 3b 20 7d 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 4d 69 6e 28 61 29 20 7b 20 72 65 74 | )==0);.}.function.bnMin(a).{.ret |
13c0 | 75 72 6e 28 74 68 69 73 2e 63 6f 6d 70 61 72 65 54 6f 28 61 29 3c 30 29 3f 74 68 69 73 3a 61 3b | urn(this.compareTo(a)<0)?this:a; |
13e0 | 20 7d 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 4d 61 78 28 61 29 20 7b 20 72 65 74 75 72 6e 28 74 68 | .}.function.bnMax(a).{.return(th |
1400 | 69 73 2e 63 6f 6d 70 61 72 65 54 6f 28 61 29 3e 30 29 3f 74 68 69 73 3a 61 3b 20 7d 0a 0a 2f 2f | is.compareTo(a)>0)?this:a;.}..// |
1420 | 20 28 70 72 6f 74 65 63 74 65 64 29 20 72 20 3d 20 74 68 69 73 20 6f 70 20 61 20 28 62 69 74 77 | .(protected).r.=.this.op.a.(bitw |
1440 | 69 73 65 29 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 42 69 74 77 69 73 65 54 6f 28 61 2c 6f 70 2c | ise).function.bnpBitwiseTo(a,op, |
1460 | 72 29 20 7b 0a 20 20 76 61 72 20 69 2c 20 66 2c 20 6d 20 3d 20 4d 61 74 68 2e 6d 69 6e 28 61 2e | r).{...var.i,.f,.m.=.Math.min(a. |
1480 | 74 2c 74 68 69 73 2e 74 29 3b 0a 20 20 66 6f 72 28 69 20 3d 20 30 3b 20 69 20 3c 20 6d 3b 20 2b | t,this.t);...for(i.=.0;.i.<.m;.+ |
14a0 | 2b 69 29 20 72 5b 69 5d 20 3d 20 6f 70 28 74 68 69 73 5b 69 5d 2c 61 5b 69 5d 29 3b 0a 20 20 69 | +i).r[i].=.op(this[i],a[i]);...i |
14c0 | 66 28 61 2e 74 20 3c 20 74 68 69 73 2e 74 29 20 7b 0a 20 20 20 20 66 20 3d 20 61 2e 73 26 74 68 | f(a.t.<.this.t).{.....f.=.a.s&th |
14e0 | 69 73 2e 44 4d 3b 0a 20 20 20 20 66 6f 72 28 69 20 3d 20 6d 3b 20 69 20 3c 20 74 68 69 73 2e 74 | is.DM;.....for(i.=.m;.i.<.this.t |
1500 | 3b 20 2b 2b 69 29 20 72 5b 69 5d 20 3d 20 6f 70 28 74 68 69 73 5b 69 5d 2c 66 29 3b 0a 20 20 20 | ;.++i).r[i].=.op(this[i],f);.... |
1520 | 20 72 2e 74 20 3d 20 74 68 69 73 2e 74 3b 0a 20 20 7d 0a 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 | .r.t.=.this.t;...}...else.{..... |
1540 | 66 20 3d 20 74 68 69 73 2e 73 26 74 68 69 73 2e 44 4d 3b 0a 20 20 20 20 66 6f 72 28 69 20 3d 20 | f.=.this.s&this.DM;.....for(i.=. |
1560 | 6d 3b 20 69 20 3c 20 61 2e 74 3b 20 2b 2b 69 29 20 72 5b 69 5d 20 3d 20 6f 70 28 66 2c 61 5b 69 | m;.i.<.a.t;.++i).r[i].=.op(f,a[i |
1580 | 5d 29 3b 0a 20 20 20 20 72 2e 74 20 3d 20 61 2e 74 3b 0a 20 20 7d 0a 20 20 72 2e 73 20 3d 20 6f | ]);.....r.t.=.a.t;...}...r.s.=.o |
15a0 | 70 28 74 68 69 73 2e 73 2c 61 2e 73 29 3b 0a 20 20 72 2e 63 6c 61 6d 70 28 29 3b 0a 7d 0a 0a 2f | p(this.s,a.s);...r.clamp();.}../ |
15c0 | 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 20 26 20 61 0a 66 75 6e 63 74 69 6f 6e 20 6f 70 5f | /.(public).this.&.a.function.op_ |
15e0 | 61 6e 64 28 78 2c 79 29 20 7b 20 72 65 74 75 72 6e 20 78 26 79 3b 20 7d 0a 66 75 6e 63 74 69 6f | and(x,y).{.return.x&y;.}.functio |
1600 | 6e 20 62 6e 41 6e 64 28 61 29 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 20 74 68 69 73 | n.bnAnd(a).{.var.r.=.nbi();.this |
1620 | 2e 62 69 74 77 69 73 65 54 6f 28 61 2c 6f 70 5f 61 6e 64 2c 72 29 3b 20 72 65 74 75 72 6e 20 72 | .bitwiseTo(a,op_and,r);.return.r |
1640 | 3b 20 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 20 7c 20 61 0a 66 75 6e 63 74 69 | ;.}..//.(public).this.|.a.functi |
1660 | 6f 6e 20 6f 70 5f 6f 72 28 78 2c 79 29 20 7b 20 72 65 74 75 72 6e 20 78 7c 79 3b 20 7d 0a 66 75 | on.op_or(x,y).{.return.x|y;.}.fu |
1680 | 6e 63 74 69 6f 6e 20 62 6e 4f 72 28 61 29 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 20 | nction.bnOr(a).{.var.r.=.nbi();. |
16a0 | 74 68 69 73 2e 62 69 74 77 69 73 65 54 6f 28 61 2c 6f 70 5f 6f 72 2c 72 29 3b 20 72 65 74 75 72 | this.bitwiseTo(a,op_or,r);.retur |
16c0 | 6e 20 72 3b 20 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 20 5e 20 61 0a 66 75 6e | n.r;.}..//.(public).this.^.a.fun |
16e0 | 63 74 69 6f 6e 20 6f 70 5f 78 6f 72 28 78 2c 79 29 20 7b 20 72 65 74 75 72 6e 20 78 5e 79 3b 20 | ction.op_xor(x,y).{.return.x^y;. |
1700 | 7d 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 58 6f 72 28 61 29 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 | }.function.bnXor(a).{.var.r.=.nb |
1720 | 69 28 29 3b 20 74 68 69 73 2e 62 69 74 77 69 73 65 54 6f 28 61 2c 6f 70 5f 78 6f 72 2c 72 29 3b | i();.this.bitwiseTo(a,op_xor,r); |
1740 | 20 72 65 74 75 72 6e 20 72 3b 20 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 20 26 | .return.r;.}..//.(public).this.& |
1760 | 20 7e 61 0a 66 75 6e 63 74 69 6f 6e 20 6f 70 5f 61 6e 64 6e 6f 74 28 78 2c 79 29 20 7b 20 72 65 | .~a.function.op_andnot(x,y).{.re |
1780 | 74 75 72 6e 20 78 26 7e 79 3b 20 7d 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 41 6e 64 4e 6f 74 28 61 | turn.x&~y;.}.function.bnAndNot(a |
17a0 | 29 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 20 74 68 69 73 2e 62 69 74 77 69 73 65 54 | ).{.var.r.=.nbi();.this.bitwiseT |
17c0 | 6f 28 61 2c 6f 70 5f 61 6e 64 6e 6f 74 2c 72 29 3b 20 72 65 74 75 72 6e 20 72 3b 20 7d 0a 0a 2f | o(a,op_andnot,r);.return.r;.}../ |
17e0 | 2f 20 28 70 75 62 6c 69 63 29 20 7e 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 4e 6f 74 28 | /.(public).~this.function.bnNot( |
1800 | 29 20 7b 0a 20 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 0a 20 20 66 6f 72 28 76 61 72 20 69 | ).{...var.r.=.nbi();...for(var.i |
1820 | 20 3d 20 30 3b 20 69 20 3c 20 74 68 69 73 2e 74 3b 20 2b 2b 69 29 20 72 5b 69 5d 20 3d 20 74 68 | .=.0;.i.<.this.t;.++i).r[i].=.th |
1840 | 69 73 2e 44 4d 26 7e 74 68 69 73 5b 69 5d 3b 0a 20 20 72 2e 74 20 3d 20 74 68 69 73 2e 74 3b 0a | is.DM&~this[i];...r.t.=.this.t;. |
1860 | 20 20 72 2e 73 20 3d 20 7e 74 68 69 73 2e 73 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a | ..r.s.=.~this.s;...return.r;.}.. |
1880 | 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 20 3c 3c 20 6e 0a 66 75 6e 63 74 69 6f 6e 20 62 | //.(public).this.<<.n.function.b |
18a0 | 6e 53 68 69 66 74 4c 65 66 74 28 6e 29 20 7b 0a 20 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b | nShiftLeft(n).{...var.r.=.nbi(); |
18c0 | 0a 20 20 69 66 28 6e 20 3c 20 30 29 20 74 68 69 73 2e 72 53 68 69 66 74 54 6f 28 2d 6e 2c 72 29 | ...if(n.<.0).this.rShiftTo(-n,r) |
18e0 | 3b 20 65 6c 73 65 20 74 68 69 73 2e 6c 53 68 69 66 74 54 6f 28 6e 2c 72 29 3b 0a 20 20 72 65 74 | ;.else.this.lShiftTo(n,r);...ret |
1900 | 75 72 6e 20 72 3b 0a 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 20 3e 3e 20 6e 0a | urn.r;.}..//.(public).this.>>.n. |
1920 | 66 75 6e 63 74 69 6f 6e 20 62 6e 53 68 69 66 74 52 69 67 68 74 28 6e 29 20 7b 0a 20 20 76 61 72 | function.bnShiftRight(n).{...var |
1940 | 20 72 20 3d 20 6e 62 69 28 29 3b 0a 20 20 69 66 28 6e 20 3c 20 30 29 20 74 68 69 73 2e 6c 53 68 | .r.=.nbi();...if(n.<.0).this.lSh |
1960 | 69 66 74 54 6f 28 2d 6e 2c 72 29 3b 20 65 6c 73 65 20 74 68 69 73 2e 72 53 68 69 66 74 54 6f 28 | iftTo(-n,r);.else.this.rShiftTo( |
1980 | 6e 2c 72 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a 2f 2f 20 72 65 74 75 72 6e 20 69 | n,r);...return.r;.}..//.return.i |
19a0 | 6e 64 65 78 20 6f 66 20 6c 6f 77 65 73 74 20 31 2d 62 69 74 20 69 6e 20 78 2c 20 78 20 3c 20 32 | ndex.of.lowest.1-bit.in.x,.x.<.2 |
19c0 | 5e 33 31 0a 66 75 6e 63 74 69 6f 6e 20 6c 62 69 74 28 78 29 20 7b 0a 20 20 69 66 28 78 20 3d 3d | ^31.function.lbit(x).{...if(x.== |
19e0 | 20 30 29 20 72 65 74 75 72 6e 20 2d 31 3b 0a 20 20 76 61 72 20 72 20 3d 20 30 3b 0a 20 20 69 66 | .0).return.-1;...var.r.=.0;...if |
1a00 | 28 28 78 26 30 78 66 66 66 66 29 20 3d 3d 20 30 29 20 7b 20 78 20 3e 3e 3d 20 31 36 3b 20 72 20 | ((x&0xffff).==.0).{.x.>>=.16;.r. |
1a20 | 2b 3d 20 31 36 3b 20 7d 0a 20 20 69 66 28 28 78 26 30 78 66 66 29 20 3d 3d 20 30 29 20 7b 20 78 | +=.16;.}...if((x&0xff).==.0).{.x |
1a40 | 20 3e 3e 3d 20 38 3b 20 72 20 2b 3d 20 38 3b 20 7d 0a 20 20 69 66 28 28 78 26 30 78 66 29 20 3d | .>>=.8;.r.+=.8;.}...if((x&0xf).= |
1a60 | 3d 20 30 29 20 7b 20 78 20 3e 3e 3d 20 34 3b 20 72 20 2b 3d 20 34 3b 20 7d 0a 20 20 69 66 28 28 | =.0).{.x.>>=.4;.r.+=.4;.}...if(( |
1a80 | 78 26 33 29 20 3d 3d 20 30 29 20 7b 20 78 20 3e 3e 3d 20 32 3b 20 72 20 2b 3d 20 32 3b 20 7d 0a | x&3).==.0).{.x.>>=.2;.r.+=.2;.}. |
1aa0 | 20 20 69 66 28 28 78 26 31 29 20 3d 3d 20 30 29 20 2b 2b 72 3b 0a 20 20 72 65 74 75 72 6e 20 72 | ..if((x&1).==.0).++r;...return.r |
1ac0 | 3b 0a 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 72 65 74 75 72 6e 73 20 69 6e 64 65 78 20 6f | ;.}..//.(public).returns.index.o |
1ae0 | 66 20 6c 6f 77 65 73 74 20 31 2d 62 69 74 20 28 6f 72 20 2d 31 20 69 66 20 6e 6f 6e 65 29 0a 66 | f.lowest.1-bit.(or.-1.if.none).f |
1b00 | 75 6e 63 74 69 6f 6e 20 62 6e 47 65 74 4c 6f 77 65 73 74 53 65 74 42 69 74 28 29 20 7b 0a 20 20 | unction.bnGetLowestSetBit().{... |
1b20 | 66 6f 72 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 74 68 69 73 2e 74 3b 20 2b 2b 69 29 0a | for(var.i.=.0;.i.<.this.t;.++i). |
1b40 | 20 20 20 20 69 66 28 74 68 69 73 5b 69 5d 20 21 3d 20 30 29 20 72 65 74 75 72 6e 20 69 2a 74 68 | ....if(this[i].!=.0).return.i*th |
1b60 | 69 73 2e 44 42 2b 6c 62 69 74 28 74 68 69 73 5b 69 5d 29 3b 0a 20 20 69 66 28 74 68 69 73 2e 73 | is.DB+lbit(this[i]);...if(this.s |
1b80 | 20 3c 20 30 29 20 72 65 74 75 72 6e 20 74 68 69 73 2e 74 2a 74 68 69 73 2e 44 42 3b 0a 20 20 72 | .<.0).return.this.t*this.DB;...r |
1ba0 | 65 74 75 72 6e 20 2d 31 3b 0a 7d 0a 0a 2f 2f 20 72 65 74 75 72 6e 20 6e 75 6d 62 65 72 20 6f 66 | eturn.-1;.}..//.return.number.of |
1bc0 | 20 31 20 62 69 74 73 20 69 6e 20 78 0a 66 75 6e 63 74 69 6f 6e 20 63 62 69 74 28 78 29 20 7b 0a | .1.bits.in.x.function.cbit(x).{. |
1be0 | 20 20 76 61 72 20 72 20 3d 20 30 3b 0a 20 20 77 68 69 6c 65 28 78 20 21 3d 20 30 29 20 7b 20 78 | ..var.r.=.0;...while(x.!=.0).{.x |
1c00 | 20 26 3d 20 78 2d 31 3b 20 2b 2b 72 3b 20 7d 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a 2f | .&=.x-1;.++r;.}...return.r;.}../ |
1c20 | 2f 20 28 70 75 62 6c 69 63 29 20 72 65 74 75 72 6e 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 74 20 | /.(public).return.number.of.set. |
1c40 | 62 69 74 73 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 42 69 74 43 6f 75 6e 74 28 29 20 7b 0a 20 20 76 | bits.function.bnBitCount().{...v |
1c60 | 61 72 20 72 20 3d 20 30 2c 20 78 20 3d 20 74 68 69 73 2e 73 26 74 68 69 73 2e 44 4d 3b 0a 20 20 | ar.r.=.0,.x.=.this.s&this.DM;... |
1c80 | 66 6f 72 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 74 68 69 73 2e 74 3b 20 2b 2b 69 29 20 | for(var.i.=.0;.i.<.this.t;.++i). |
1ca0 | 72 20 2b 3d 20 63 62 69 74 28 74 68 69 73 5b 69 5d 5e 78 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 | r.+=.cbit(this[i]^x);...return.r |
1cc0 | 3b 0a 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 72 75 65 20 69 66 66 20 6e 74 68 20 62 69 | ;.}..//.(public).true.iff.nth.bi |
1ce0 | 74 20 69 73 20 73 65 74 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 54 65 73 74 42 69 74 28 6e 29 20 7b | t.is.set.function.bnTestBit(n).{ |
1d00 | 0a 20 20 76 61 72 20 6a 20 3d 20 4d 61 74 68 2e 66 6c 6f 6f 72 28 6e 2f 74 68 69 73 2e 44 42 29 | ...var.j.=.Math.floor(n/this.DB) |
1d20 | 3b 0a 20 20 69 66 28 6a 20 3e 3d 20 74 68 69 73 2e 74 29 20 72 65 74 75 72 6e 28 74 68 69 73 2e | ;...if(j.>=.this.t).return(this. |
1d40 | 73 21 3d 30 29 3b 0a 20 20 72 65 74 75 72 6e 28 28 74 68 69 73 5b 6a 5d 26 28 31 3c 3c 28 6e 25 | s!=0);...return((this[j]&(1<<(n% |
1d60 | 74 68 69 73 2e 44 42 29 29 29 21 3d 30 29 3b 0a 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 | this.DB)))!=0);.}..//.(protected |
1d80 | 29 20 74 68 69 73 20 6f 70 20 28 31 3c 3c 6e 29 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 43 68 61 | ).this.op.(1<<n).function.bnpCha |
1da0 | 6e 67 65 42 69 74 28 6e 2c 6f 70 29 20 7b 0a 20 20 76 61 72 20 72 20 3d 20 42 69 67 49 6e 74 65 | ngeBit(n,op).{...var.r.=.BigInte |
1dc0 | 67 65 72 2e 4f 4e 45 2e 73 68 69 66 74 4c 65 66 74 28 6e 29 3b 0a 20 20 74 68 69 73 2e 62 69 74 | ger.ONE.shiftLeft(n);...this.bit |
1de0 | 77 69 73 65 54 6f 28 72 2c 6f 70 2c 72 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a 2f | wiseTo(r,op,r);...return.r;.}../ |
1e00 | 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 20 7c 20 28 31 3c 3c 6e 29 0a 66 75 6e 63 74 69 6f | /.(public).this.|.(1<<n).functio |
1e20 | 6e 20 62 6e 53 65 74 42 69 74 28 6e 29 20 7b 20 72 65 74 75 72 6e 20 74 68 69 73 2e 63 68 61 6e | n.bnSetBit(n).{.return.this.chan |
1e40 | 67 65 42 69 74 28 6e 2c 6f 70 5f 6f 72 29 3b 20 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 | geBit(n,op_or);.}..//.(public).t |
1e60 | 68 69 73 20 26 20 7e 28 31 3c 3c 6e 29 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 43 6c 65 61 72 42 69 | his.&.~(1<<n).function.bnClearBi |
1e80 | 74 28 6e 29 20 7b 20 72 65 74 75 72 6e 20 74 68 69 73 2e 63 68 61 6e 67 65 42 69 74 28 6e 2c 6f | t(n).{.return.this.changeBit(n,o |
1ea0 | 70 5f 61 6e 64 6e 6f 74 29 3b 20 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 20 5e | p_andnot);.}..//.(public).this.^ |
1ec0 | 20 28 31 3c 3c 6e 29 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 46 6c 69 70 42 69 74 28 6e 29 20 7b 20 | .(1<<n).function.bnFlipBit(n).{. |
1ee0 | 72 65 74 75 72 6e 20 74 68 69 73 2e 63 68 61 6e 67 65 42 69 74 28 6e 2c 6f 70 5f 78 6f 72 29 3b | return.this.changeBit(n,op_xor); |
1f00 | 20 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 72 20 3d 20 74 68 69 73 20 2b 20 61 0a | .}..//.(protected).r.=.this.+.a. |
1f20 | 66 75 6e 63 74 69 6f 6e 20 62 6e 70 41 64 64 54 6f 28 61 2c 72 29 20 7b 0a 20 20 76 61 72 20 69 | function.bnpAddTo(a,r).{...var.i |
1f40 | 20 3d 20 30 2c 20 63 20 3d 20 30 2c 20 6d 20 3d 20 4d 61 74 68 2e 6d 69 6e 28 61 2e 74 2c 74 68 | .=.0,.c.=.0,.m.=.Math.min(a.t,th |
1f60 | 69 73 2e 74 29 3b 0a 20 20 77 68 69 6c 65 28 69 20 3c 20 6d 29 20 7b 0a 20 20 20 20 63 20 2b 3d | is.t);...while(i.<.m).{.....c.+= |
1f80 | 20 74 68 69 73 5b 69 5d 2b 61 5b 69 5d 3b 0a 20 20 20 20 72 5b 69 2b 2b 5d 20 3d 20 63 26 74 68 | .this[i]+a[i];.....r[i++].=.c&th |
1fa0 | 69 73 2e 44 4d 3b 0a 20 20 20 20 63 20 3e 3e 3d 20 74 68 69 73 2e 44 42 3b 0a 20 20 7d 0a 20 20 | is.DM;.....c.>>=.this.DB;...}... |
1fc0 | 69 66 28 61 2e 74 20 3c 20 74 68 69 73 2e 74 29 20 7b 0a 20 20 20 20 63 20 2b 3d 20 61 2e 73 3b | if(a.t.<.this.t).{.....c.+=.a.s; |
1fe0 | 0a 20 20 20 20 77 68 69 6c 65 28 69 20 3c 20 74 68 69 73 2e 74 29 20 7b 0a 20 20 20 20 20 20 63 | .....while(i.<.this.t).{.......c |
2000 | 20 2b 3d 20 74 68 69 73 5b 69 5d 3b 0a 20 20 20 20 20 20 72 5b 69 2b 2b 5d 20 3d 20 63 26 74 68 | .+=.this[i];.......r[i++].=.c&th |
2020 | 69 73 2e 44 4d 3b 0a 20 20 20 20 20 20 63 20 3e 3e 3d 20 74 68 69 73 2e 44 42 3b 0a 20 20 20 20 | is.DM;.......c.>>=.this.DB;..... |
2040 | 7d 0a 20 20 20 20 63 20 2b 3d 20 74 68 69 73 2e 73 3b 0a 20 20 7d 0a 20 20 65 6c 73 65 20 7b 0a | }.....c.+=.this.s;...}...else.{. |
2060 | 20 20 20 20 63 20 2b 3d 20 74 68 69 73 2e 73 3b 0a 20 20 20 20 77 68 69 6c 65 28 69 20 3c 20 61 | ....c.+=.this.s;.....while(i.<.a |
2080 | 2e 74 29 20 7b 0a 20 20 20 20 20 20 63 20 2b 3d 20 61 5b 69 5d 3b 0a 20 20 20 20 20 20 72 5b 69 | .t).{.......c.+=.a[i];.......r[i |
20a0 | 2b 2b 5d 20 3d 20 63 26 74 68 69 73 2e 44 4d 3b 0a 20 20 20 20 20 20 63 20 3e 3e 3d 20 74 68 69 | ++].=.c&this.DM;.......c.>>=.thi |
20c0 | 73 2e 44 42 3b 0a 20 20 20 20 7d 0a 20 20 20 20 63 20 2b 3d 20 61 2e 73 3b 0a 20 20 7d 0a 20 20 | s.DB;.....}.....c.+=.a.s;...}... |
20e0 | 72 2e 73 20 3d 20 28 63 3c 30 29 3f 2d 31 3a 30 3b 0a 20 20 69 66 28 63 20 3e 20 30 29 20 72 5b | r.s.=.(c<0)?-1:0;...if(c.>.0).r[ |
2100 | 69 2b 2b 5d 20 3d 20 63 3b 0a 20 20 65 6c 73 65 20 69 66 28 63 20 3c 20 2d 31 29 20 72 5b 69 2b | i++].=.c;...else.if(c.<.-1).r[i+ |
2120 | 2b 5d 20 3d 20 74 68 69 73 2e 44 56 2b 63 3b 0a 20 20 72 2e 74 20 3d 20 69 3b 0a 20 20 72 2e 63 | +].=.this.DV+c;...r.t.=.i;...r.c |
2140 | 6c 61 6d 70 28 29 3b 0a 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 20 2b 20 61 0a | lamp();.}..//.(public).this.+.a. |
2160 | 66 75 6e 63 74 69 6f 6e 20 62 6e 41 64 64 28 61 29 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 69 28 | function.bnAdd(a).{.var.r.=.nbi( |
2180 | 29 3b 20 74 68 69 73 2e 61 64 64 54 6f 28 61 2c 72 29 3b 20 72 65 74 75 72 6e 20 72 3b 20 7d 0a | );.this.addTo(a,r);.return.r;.}. |
21a0 | 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 20 2d 20 61 0a 66 75 6e 63 74 69 6f 6e 20 62 | .//.(public).this.-.a.function.b |
21c0 | 6e 53 75 62 74 72 61 63 74 28 61 29 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 20 74 68 | nSubtract(a).{.var.r.=.nbi();.th |
21e0 | 69 73 2e 73 75 62 54 6f 28 61 2c 72 29 3b 20 72 65 74 75 72 6e 20 72 3b 20 7d 0a 0a 2f 2f 20 28 | is.subTo(a,r);.return.r;.}..//.( |
2200 | 70 75 62 6c 69 63 29 20 74 68 69 73 20 2a 20 61 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 4d 75 6c 74 | public).this.*.a.function.bnMult |
2220 | 69 70 6c 79 28 61 29 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 20 74 68 69 73 2e 6d 75 | iply(a).{.var.r.=.nbi();.this.mu |
2240 | 6c 74 69 70 6c 79 54 6f 28 61 2c 72 29 3b 20 72 65 74 75 72 6e 20 72 3b 20 7d 0a 0a 2f 2f 20 28 | ltiplyTo(a,r);.return.r;.}..//.( |
2260 | 70 75 62 6c 69 63 29 20 74 68 69 73 20 2f 20 61 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 44 69 76 69 | public).this./.a.function.bnDivi |
2280 | 64 65 28 61 29 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 20 74 68 69 73 2e 64 69 76 52 | de(a).{.var.r.=.nbi();.this.divR |
22a0 | 65 6d 54 6f 28 61 2c 72 2c 6e 75 6c 6c 29 3b 20 72 65 74 75 72 6e 20 72 3b 20 7d 0a 0a 2f 2f 20 | emTo(a,r,null);.return.r;.}..//. |
22c0 | 28 70 75 62 6c 69 63 29 20 74 68 69 73 20 25 20 61 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 52 65 6d | (public).this.%.a.function.bnRem |
22e0 | 61 69 6e 64 65 72 28 61 29 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 20 74 68 69 73 2e | ainder(a).{.var.r.=.nbi();.this. |
2300 | 64 69 76 52 65 6d 54 6f 28 61 2c 6e 75 6c 6c 2c 72 29 3b 20 72 65 74 75 72 6e 20 72 3b 20 7d 0a | divRemTo(a,null,r);.return.r;.}. |
2320 | 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 5b 74 68 69 73 2f 61 2c 74 68 69 73 25 61 5d 0a 66 75 6e | .//.(public).[this/a,this%a].fun |
2340 | 63 74 69 6f 6e 20 62 6e 44 69 76 69 64 65 41 6e 64 52 65 6d 61 69 6e 64 65 72 28 61 29 20 7b 0a | ction.bnDivideAndRemainder(a).{. |
2360 | 20 20 76 61 72 20 71 20 3d 20 6e 62 69 28 29 2c 20 72 20 3d 20 6e 62 69 28 29 3b 0a 20 20 74 68 | ..var.q.=.nbi(),.r.=.nbi();...th |
2380 | 69 73 2e 64 69 76 52 65 6d 54 6f 28 61 2c 71 2c 72 29 3b 0a 20 20 72 65 74 75 72 6e 20 6e 65 77 | is.divRemTo(a,q,r);...return.new |
23a0 | 20 41 72 72 61 79 28 71 2c 72 29 3b 0a 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 74 | .Array(q,r);.}..//.(protected).t |
23c0 | 68 69 73 20 2a 3d 20 6e 2c 20 74 68 69 73 20 3e 3d 20 30 2c 20 31 20 3c 20 6e 20 3c 20 44 56 0a | his.*=.n,.this.>=.0,.1.<.n.<.DV. |
23e0 | 66 75 6e 63 74 69 6f 6e 20 62 6e 70 44 4d 75 6c 74 69 70 6c 79 28 6e 29 20 7b 0a 20 20 74 68 69 | function.bnpDMultiply(n).{...thi |
2400 | 73 5b 74 68 69 73 2e 74 5d 20 3d 20 74 68 69 73 2e 61 6d 28 30 2c 6e 2d 31 2c 74 68 69 73 2c 30 | s[this.t].=.this.am(0,n-1,this,0 |
2420 | 2c 30 2c 74 68 69 73 2e 74 29 3b 0a 20 20 2b 2b 74 68 69 73 2e 74 3b 0a 20 20 74 68 69 73 2e 63 | ,0,this.t);...++this.t;...this.c |
2440 | 6c 61 6d 70 28 29 3b 0a 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 74 68 69 73 20 2b | lamp();.}..//.(protected).this.+ |
2460 | 3d 20 6e 20 3c 3c 20 77 20 77 6f 72 64 73 2c 20 74 68 69 73 20 3e 3d 20 30 0a 66 75 6e 63 74 69 | =.n.<<.w.words,.this.>=.0.functi |
2480 | 6f 6e 20 62 6e 70 44 41 64 64 4f 66 66 73 65 74 28 6e 2c 77 29 20 7b 0a 20 20 77 68 69 6c 65 28 | on.bnpDAddOffset(n,w).{...while( |
24a0 | 74 68 69 73 2e 74 20 3c 3d 20 77 29 20 74 68 69 73 5b 74 68 69 73 2e 74 2b 2b 5d 20 3d 20 30 3b | this.t.<=.w).this[this.t++].=.0; |
24c0 | 0a 20 20 74 68 69 73 5b 77 5d 20 2b 3d 20 6e 3b 0a 20 20 77 68 69 6c 65 28 74 68 69 73 5b 77 5d | ...this[w].+=.n;...while(this[w] |
24e0 | 20 3e 3d 20 74 68 69 73 2e 44 56 29 20 7b 0a 20 20 20 20 74 68 69 73 5b 77 5d 20 2d 3d 20 74 68 | .>=.this.DV).{.....this[w].-=.th |
2500 | 69 73 2e 44 56 3b 0a 20 20 20 20 69 66 28 2b 2b 77 20 3e 3d 20 74 68 69 73 2e 74 29 20 74 68 69 | is.DV;.....if(++w.>=.this.t).thi |
2520 | 73 5b 74 68 69 73 2e 74 2b 2b 5d 20 3d 20 30 3b 0a 20 20 20 20 2b 2b 74 68 69 73 5b 77 5d 3b 0a | s[this.t++].=.0;.....++this[w];. |
2540 | 20 20 7d 0a 7d 0a 0a 2f 2f 20 41 20 22 6e 75 6c 6c 22 20 72 65 64 75 63 65 72 0a 66 75 6e 63 74 | ..}.}..//.A."null".reducer.funct |
2560 | 69 6f 6e 20 4e 75 6c 6c 45 78 70 28 29 20 7b 7d 0a 66 75 6e 63 74 69 6f 6e 20 6e 4e 6f 70 28 78 | ion.NullExp().{}.function.nNop(x |
2580 | 29 20 7b 20 72 65 74 75 72 6e 20 78 3b 20 7d 0a 66 75 6e 63 74 69 6f 6e 20 6e 4d 75 6c 54 6f 28 | ).{.return.x;.}.function.nMulTo( |
25a0 | 78 2c 79 2c 72 29 20 7b 20 78 2e 6d 75 6c 74 69 70 6c 79 54 6f 28 79 2c 72 29 3b 20 7d 0a 66 75 | x,y,r).{.x.multiplyTo(y,r);.}.fu |
25c0 | 6e 63 74 69 6f 6e 20 6e 53 71 72 54 6f 28 78 2c 72 29 20 7b 20 78 2e 73 71 75 61 72 65 54 6f 28 | nction.nSqrTo(x,r).{.x.squareTo( |
25e0 | 72 29 3b 20 7d 0a 0a 4e 75 6c 6c 45 78 70 2e 70 72 6f 74 6f 74 79 70 65 2e 63 6f 6e 76 65 72 74 | r);.}..NullExp.prototype.convert |
2600 | 20 3d 20 6e 4e 6f 70 3b 0a 4e 75 6c 6c 45 78 70 2e 70 72 6f 74 6f 74 79 70 65 2e 72 65 76 65 72 | .=.nNop;.NullExp.prototype.rever |
2620 | 74 20 3d 20 6e 4e 6f 70 3b 0a 4e 75 6c 6c 45 78 70 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 75 6c 54 | t.=.nNop;.NullExp.prototype.mulT |
2640 | 6f 20 3d 20 6e 4d 75 6c 54 6f 3b 0a 4e 75 6c 6c 45 78 70 2e 70 72 6f 74 6f 74 79 70 65 2e 73 71 | o.=.nMulTo;.NullExp.prototype.sq |
2660 | 72 54 6f 20 3d 20 6e 53 71 72 54 6f 3b 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 5e | rTo.=.nSqrTo;..//.(public).this^ |
2680 | 65 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 50 6f 77 28 65 29 20 7b 20 72 65 74 75 72 6e 20 74 68 69 | e.function.bnPow(e).{.return.thi |
26a0 | 73 2e 65 78 70 28 65 2c 6e 65 77 20 4e 75 6c 6c 45 78 70 28 29 29 3b 20 7d 0a 0a 2f 2f 20 28 70 | s.exp(e,new.NullExp());.}..//.(p |
26c0 | 72 6f 74 65 63 74 65 64 29 20 72 20 3d 20 6c 6f 77 65 72 20 6e 20 77 6f 72 64 73 20 6f 66 20 22 | rotected).r.=.lower.n.words.of." |
26e0 | 74 68 69 73 20 2a 20 61 22 2c 20 61 2e 74 20 3c 3d 20 6e 0a 2f 2f 20 22 74 68 69 73 22 20 73 68 | this.*.a",.a.t.<=.n.//."this".sh |
2700 | 6f 75 6c 64 20 62 65 20 74 68 65 20 6c 61 72 67 65 72 20 6f 6e 65 20 69 66 20 61 70 70 72 6f 70 | ould.be.the.larger.one.if.approp |
2720 | 72 69 61 74 65 2e 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 4d 75 6c 74 69 70 6c 79 4c 6f 77 65 72 | riate..function.bnpMultiplyLower |
2740 | 54 6f 28 61 2c 6e 2c 72 29 20 7b 0a 20 20 76 61 72 20 69 20 3d 20 4d 61 74 68 2e 6d 69 6e 28 74 | To(a,n,r).{...var.i.=.Math.min(t |
2760 | 68 69 73 2e 74 2b 61 2e 74 2c 6e 29 3b 0a 20 20 72 2e 73 20 3d 20 30 3b 20 2f 2f 20 61 73 73 75 | his.t+a.t,n);...r.s.=.0;.//.assu |
2780 | 6d 65 73 20 61 2c 74 68 69 73 20 3e 3d 20 30 0a 20 20 72 2e 74 20 3d 20 69 3b 0a 20 20 77 68 69 | mes.a,this.>=.0...r.t.=.i;...whi |
27a0 | 6c 65 28 69 20 3e 20 30 29 20 72 5b 2d 2d 69 5d 20 3d 20 30 3b 0a 20 20 76 61 72 20 6a 3b 0a 20 | le(i.>.0).r[--i].=.0;...var.j;.. |
27c0 | 20 66 6f 72 28 6a 20 3d 20 72 2e 74 2d 74 68 69 73 2e 74 3b 20 69 20 3c 20 6a 3b 20 2b 2b 69 29 | .for(j.=.r.t-this.t;.i.<.j;.++i) |
27e0 | 20 72 5b 69 2b 74 68 69 73 2e 74 5d 20 3d 20 74 68 69 73 2e 61 6d 28 30 2c 61 5b 69 5d 2c 72 2c | .r[i+this.t].=.this.am(0,a[i],r, |
2800 | 69 2c 30 2c 74 68 69 73 2e 74 29 3b 0a 20 20 66 6f 72 28 6a 20 3d 20 4d 61 74 68 2e 6d 69 6e 28 | i,0,this.t);...for(j.=.Math.min( |
2820 | 61 2e 74 2c 6e 29 3b 20 69 20 3c 20 6a 3b 20 2b 2b 69 29 20 74 68 69 73 2e 61 6d 28 30 2c 61 5b | a.t,n);.i.<.j;.++i).this.am(0,a[ |
2840 | 69 5d 2c 72 2c 69 2c 30 2c 6e 2d 69 29 3b 0a 20 20 72 2e 63 6c 61 6d 70 28 29 3b 0a 7d 0a 0a 2f | i],r,i,0,n-i);...r.clamp();.}../ |
2860 | 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 72 20 3d 20 22 74 68 69 73 20 2a 20 61 22 20 77 69 74 | /.(protected).r.=."this.*.a".wit |
2880 | 68 6f 75 74 20 6c 6f 77 65 72 20 6e 20 77 6f 72 64 73 2c 20 6e 20 3e 20 30 0a 2f 2f 20 22 74 68 | hout.lower.n.words,.n.>.0.//."th |
28a0 | 69 73 22 20 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 6c 61 72 67 65 72 20 6f 6e 65 20 69 66 20 | is".should.be.the.larger.one.if. |
28c0 | 61 70 70 72 6f 70 72 69 61 74 65 2e 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 4d 75 6c 74 69 70 6c | appropriate..function.bnpMultipl |
28e0 | 79 55 70 70 65 72 54 6f 28 61 2c 6e 2c 72 29 20 7b 0a 20 20 2d 2d 6e 3b 0a 20 20 76 61 72 20 69 | yUpperTo(a,n,r).{...--n;...var.i |
2900 | 20 3d 20 72 2e 74 20 3d 20 74 68 69 73 2e 74 2b 61 2e 74 2d 6e 3b 0a 20 20 72 2e 73 20 3d 20 30 | .=.r.t.=.this.t+a.t-n;...r.s.=.0 |
2920 | 3b 20 2f 2f 20 61 73 73 75 6d 65 73 20 61 2c 74 68 69 73 20 3e 3d 20 30 0a 20 20 77 68 69 6c 65 | ;.//.assumes.a,this.>=.0...while |
2940 | 28 2d 2d 69 20 3e 3d 20 30 29 20 72 5b 69 5d 20 3d 20 30 3b 0a 20 20 66 6f 72 28 69 20 3d 20 4d | (--i.>=.0).r[i].=.0;...for(i.=.M |
2960 | 61 74 68 2e 6d 61 78 28 6e 2d 74 68 69 73 2e 74 2c 30 29 3b 20 69 20 3c 20 61 2e 74 3b 20 2b 2b | ath.max(n-this.t,0);.i.<.a.t;.++ |
2980 | 69 29 0a 20 20 20 20 72 5b 74 68 69 73 2e 74 2b 69 2d 6e 5d 20 3d 20 74 68 69 73 2e 61 6d 28 6e | i).....r[this.t+i-n].=.this.am(n |
29a0 | 2d 69 2c 61 5b 69 5d 2c 72 2c 30 2c 30 2c 74 68 69 73 2e 74 2b 69 2d 6e 29 3b 0a 20 20 72 2e 63 | -i,a[i],r,0,0,this.t+i-n);...r.c |
29c0 | 6c 61 6d 70 28 29 3b 0a 20 20 72 2e 64 72 53 68 69 66 74 54 6f 28 31 2c 72 29 3b 0a 7d 0a 0a 2f | lamp();...r.drShiftTo(1,r);.}../ |
29e0 | 2f 20 42 61 72 72 65 74 74 20 6d 6f 64 75 6c 61 72 20 72 65 64 75 63 74 69 6f 6e 0a 66 75 6e 63 | /.Barrett.modular.reduction.func |
2a00 | 74 69 6f 6e 20 42 61 72 72 65 74 74 28 6d 29 20 7b 0a 20 20 2f 2f 20 73 65 74 75 70 20 42 61 72 | tion.Barrett(m).{...//.setup.Bar |
2a20 | 72 65 74 74 0a 20 20 74 68 69 73 2e 72 32 20 3d 20 6e 62 69 28 29 3b 0a 20 20 74 68 69 73 2e 71 | rett...this.r2.=.nbi();...this.q |
2a40 | 33 20 3d 20 6e 62 69 28 29 3b 0a 20 20 42 69 67 49 6e 74 65 67 65 72 2e 4f 4e 45 2e 64 6c 53 68 | 3.=.nbi();...BigInteger.ONE.dlSh |
2a60 | 69 66 74 54 6f 28 32 2a 6d 2e 74 2c 74 68 69 73 2e 72 32 29 3b 0a 20 20 74 68 69 73 2e 6d 75 20 | iftTo(2*m.t,this.r2);...this.mu. |
2a80 | 3d 20 74 68 69 73 2e 72 32 2e 64 69 76 69 64 65 28 6d 29 3b 0a 20 20 74 68 69 73 2e 6d 20 3d 20 | =.this.r2.divide(m);...this.m.=. |
2aa0 | 6d 3b 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 62 61 72 72 65 74 74 43 6f 6e 76 65 72 74 28 78 29 | m;.}..function.barrettConvert(x) |
2ac0 | 20 7b 0a 20 20 69 66 28 78 2e 73 20 3c 20 30 20 7c 7c 20 78 2e 74 20 3e 20 32 2a 74 68 69 73 2e | .{...if(x.s.<.0.||.x.t.>.2*this. |
2ae0 | 6d 2e 74 29 20 72 65 74 75 72 6e 20 78 2e 6d 6f 64 28 74 68 69 73 2e 6d 29 3b 0a 20 20 65 6c 73 | m.t).return.x.mod(this.m);...els |
2b00 | 65 20 69 66 28 78 2e 63 6f 6d 70 61 72 65 54 6f 28 74 68 69 73 2e 6d 29 20 3c 20 30 29 20 72 65 | e.if(x.compareTo(this.m).<.0).re |
2b20 | 74 75 72 6e 20 78 3b 0a 20 20 65 6c 73 65 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 20 | turn.x;...else.{.var.r.=.nbi();. |
2b40 | 78 2e 63 6f 70 79 54 6f 28 72 29 3b 20 74 68 69 73 2e 72 65 64 75 63 65 28 72 29 3b 20 72 65 74 | x.copyTo(r);.this.reduce(r);.ret |
2b60 | 75 72 6e 20 72 3b 20 7d 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 62 61 72 72 65 74 74 52 65 76 65 | urn.r;.}.}..function.barrettReve |
2b80 | 72 74 28 78 29 20 7b 20 72 65 74 75 72 6e 20 78 3b 20 7d 0a 0a 2f 2f 20 78 20 3d 20 78 20 6d 6f | rt(x).{.return.x;.}..//.x.=.x.mo |
2ba0 | 64 20 6d 20 28 48 41 43 20 31 34 2e 34 32 29 0a 66 75 6e 63 74 69 6f 6e 20 62 61 72 72 65 74 74 | d.m.(HAC.14.42).function.barrett |
2bc0 | 52 65 64 75 63 65 28 78 29 20 7b 0a 20 20 78 2e 64 72 53 68 69 66 74 54 6f 28 74 68 69 73 2e 6d | Reduce(x).{...x.drShiftTo(this.m |
2be0 | 2e 74 2d 31 2c 74 68 69 73 2e 72 32 29 3b 0a 20 20 69 66 28 78 2e 74 20 3e 20 74 68 69 73 2e 6d | .t-1,this.r2);...if(x.t.>.this.m |
2c00 | 2e 74 2b 31 29 20 7b 20 78 2e 74 20 3d 20 74 68 69 73 2e 6d 2e 74 2b 31 3b 20 78 2e 63 6c 61 6d | .t+1).{.x.t.=.this.m.t+1;.x.clam |
2c20 | 70 28 29 3b 20 7d 0a 20 20 74 68 69 73 2e 6d 75 2e 6d 75 6c 74 69 70 6c 79 55 70 70 65 72 54 6f | p();.}...this.mu.multiplyUpperTo |
2c40 | 28 74 68 69 73 2e 72 32 2c 74 68 69 73 2e 6d 2e 74 2b 31 2c 74 68 69 73 2e 71 33 29 3b 0a 20 20 | (this.r2,this.m.t+1,this.q3);... |
2c60 | 74 68 69 73 2e 6d 2e 6d 75 6c 74 69 70 6c 79 4c 6f 77 65 72 54 6f 28 74 68 69 73 2e 71 33 2c 74 | this.m.multiplyLowerTo(this.q3,t |
2c80 | 68 69 73 2e 6d 2e 74 2b 31 2c 74 68 69 73 2e 72 32 29 3b 0a 20 20 77 68 69 6c 65 28 78 2e 63 6f | his.m.t+1,this.r2);...while(x.co |
2ca0 | 6d 70 61 72 65 54 6f 28 74 68 69 73 2e 72 32 29 20 3c 20 30 29 20 78 2e 64 41 64 64 4f 66 66 73 | mpareTo(this.r2).<.0).x.dAddOffs |
2cc0 | 65 74 28 31 2c 74 68 69 73 2e 6d 2e 74 2b 31 29 3b 0a 20 20 78 2e 73 75 62 54 6f 28 74 68 69 73 | et(1,this.m.t+1);...x.subTo(this |
2ce0 | 2e 72 32 2c 78 29 3b 0a 20 20 77 68 69 6c 65 28 78 2e 63 6f 6d 70 61 72 65 54 6f 28 74 68 69 73 | .r2,x);...while(x.compareTo(this |
2d00 | 2e 6d 29 20 3e 3d 20 30 29 20 78 2e 73 75 62 54 6f 28 74 68 69 73 2e 6d 2c 78 29 3b 0a 7d 0a 0a | .m).>=.0).x.subTo(this.m,x);.}.. |
2d20 | 2f 2f 20 72 20 3d 20 78 5e 32 20 6d 6f 64 20 6d 3b 20 78 20 21 3d 20 72 0a 66 75 6e 63 74 69 6f | //.r.=.x^2.mod.m;.x.!=.r.functio |
2d40 | 6e 20 62 61 72 72 65 74 74 53 71 72 54 6f 28 78 2c 72 29 20 7b 20 78 2e 73 71 75 61 72 65 54 6f | n.barrettSqrTo(x,r).{.x.squareTo |
2d60 | 28 72 29 3b 20 74 68 69 73 2e 72 65 64 75 63 65 28 72 29 3b 20 7d 0a 0a 2f 2f 20 72 20 3d 20 78 | (r);.this.reduce(r);.}..//.r.=.x |
2d80 | 2a 79 20 6d 6f 64 20 6d 3b 20 78 2c 79 20 21 3d 20 72 0a 66 75 6e 63 74 69 6f 6e 20 62 61 72 72 | *y.mod.m;.x,y.!=.r.function.barr |
2da0 | 65 74 74 4d 75 6c 54 6f 28 78 2c 79 2c 72 29 20 7b 20 78 2e 6d 75 6c 74 69 70 6c 79 54 6f 28 79 | ettMulTo(x,y,r).{.x.multiplyTo(y |
2dc0 | 2c 72 29 3b 20 74 68 69 73 2e 72 65 64 75 63 65 28 72 29 3b 20 7d 0a 0a 42 61 72 72 65 74 74 2e | ,r);.this.reduce(r);.}..Barrett. |
2de0 | 70 72 6f 74 6f 74 79 70 65 2e 63 6f 6e 76 65 72 74 20 3d 20 62 61 72 72 65 74 74 43 6f 6e 76 65 | prototype.convert.=.barrettConve |
2e00 | 72 74 3b 0a 42 61 72 72 65 74 74 2e 70 72 6f 74 6f 74 79 70 65 2e 72 65 76 65 72 74 20 3d 20 62 | rt;.Barrett.prototype.revert.=.b |
2e20 | 61 72 72 65 74 74 52 65 76 65 72 74 3b 0a 42 61 72 72 65 74 74 2e 70 72 6f 74 6f 74 79 70 65 2e | arrettRevert;.Barrett.prototype. |
2e40 | 72 65 64 75 63 65 20 3d 20 62 61 72 72 65 74 74 52 65 64 75 63 65 3b 0a 42 61 72 72 65 74 74 2e | reduce.=.barrettReduce;.Barrett. |
2e60 | 70 72 6f 74 6f 74 79 70 65 2e 6d 75 6c 54 6f 20 3d 20 62 61 72 72 65 74 74 4d 75 6c 54 6f 3b 0a | prototype.mulTo.=.barrettMulTo;. |
2e80 | 42 61 72 72 65 74 74 2e 70 72 6f 74 6f 74 79 70 65 2e 73 71 72 54 6f 20 3d 20 62 61 72 72 65 74 | Barrett.prototype.sqrTo.=.barret |
2ea0 | 74 53 71 72 54 6f 3b 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 73 5e 65 20 25 20 6d 20 | tSqrTo;..//.(public).this^e.%.m. |
2ec0 | 28 48 41 43 20 31 34 2e 38 35 29 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 4d 6f 64 50 6f 77 28 65 2c | (HAC.14.85).function.bnModPow(e, |
2ee0 | 6d 29 20 7b 0a 20 20 76 61 72 20 69 20 3d 20 65 2e 62 69 74 4c 65 6e 67 74 68 28 29 2c 20 6b 2c | m).{...var.i.=.e.bitLength(),.k, |
2f00 | 20 72 20 3d 20 6e 62 76 28 31 29 2c 20 7a 3b 0a 20 20 69 66 28 69 20 3c 3d 20 30 29 20 72 65 74 | .r.=.nbv(1),.z;...if(i.<=.0).ret |
2f20 | 75 72 6e 20 72 3b 0a 20 20 65 6c 73 65 20 69 66 28 69 20 3c 20 31 38 29 20 6b 20 3d 20 31 3b 0a | urn.r;...else.if(i.<.18).k.=.1;. |
2f40 | 20 20 65 6c 73 65 20 69 66 28 69 20 3c 20 34 38 29 20 6b 20 3d 20 33 3b 0a 20 20 65 6c 73 65 20 | ..else.if(i.<.48).k.=.3;...else. |
2f60 | 69 66 28 69 20 3c 20 31 34 34 29 20 6b 20 3d 20 34 3b 0a 20 20 65 6c 73 65 20 69 66 28 69 20 3c | if(i.<.144).k.=.4;...else.if(i.< |
2f80 | 20 37 36 38 29 20 6b 20 3d 20 35 3b 0a 20 20 65 6c 73 65 20 6b 20 3d 20 36 3b 0a 20 20 69 66 28 | .768).k.=.5;...else.k.=.6;...if( |
2fa0 | 69 20 3c 20 38 29 0a 20 20 20 20 7a 20 3d 20 6e 65 77 20 43 6c 61 73 73 69 63 28 6d 29 3b 0a 20 | i.<.8).....z.=.new.Classic(m);.. |
2fc0 | 20 65 6c 73 65 20 69 66 28 6d 2e 69 73 45 76 65 6e 28 29 29 0a 20 20 20 20 7a 20 3d 20 6e 65 77 | .else.if(m.isEven()).....z.=.new |
2fe0 | 20 42 61 72 72 65 74 74 28 6d 29 3b 0a 20 20 65 6c 73 65 0a 20 20 20 20 7a 20 3d 20 6e 65 77 20 | .Barrett(m);...else.....z.=.new. |
3000 | 4d 6f 6e 74 67 6f 6d 65 72 79 28 6d 29 3b 0a 0a 20 20 2f 2f 20 70 72 65 63 6f 6d 70 75 74 61 74 | Montgomery(m);....//.precomputat |
3020 | 69 6f 6e 0a 20 20 76 61 72 20 67 20 3d 20 6e 65 77 20 41 72 72 61 79 28 29 2c 20 6e 20 3d 20 33 | ion...var.g.=.new.Array(),.n.=.3 |
3040 | 2c 20 6b 31 20 3d 20 6b 2d 31 2c 20 6b 6d 20 3d 20 28 31 3c 3c 6b 29 2d 31 3b 0a 20 20 67 5b 31 | ,.k1.=.k-1,.km.=.(1<<k)-1;...g[1 |
3060 | 5d 20 3d 20 7a 2e 63 6f 6e 76 65 72 74 28 74 68 69 73 29 3b 0a 20 20 69 66 28 6b 20 3e 20 31 29 | ].=.z.convert(this);...if(k.>.1) |
3080 | 20 7b 0a 20 20 20 20 76 61 72 20 67 32 20 3d 20 6e 62 69 28 29 3b 0a 20 20 20 20 7a 2e 73 71 72 | .{.....var.g2.=.nbi();.....z.sqr |
30a0 | 54 6f 28 67 5b 31 5d 2c 67 32 29 3b 0a 20 20 20 20 77 68 69 6c 65 28 6e 20 3c 3d 20 6b 6d 29 20 | To(g[1],g2);.....while(n.<=.km). |
30c0 | 7b 0a 20 20 20 20 20 20 67 5b 6e 5d 20 3d 20 6e 62 69 28 29 3b 0a 20 20 20 20 20 20 7a 2e 6d 75 | {.......g[n].=.nbi();.......z.mu |
30e0 | 6c 54 6f 28 67 32 2c 67 5b 6e 2d 32 5d 2c 67 5b 6e 5d 29 3b 0a 20 20 20 20 20 20 6e 20 2b 3d 20 | lTo(g2,g[n-2],g[n]);.......n.+=. |
3100 | 32 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 76 61 72 20 6a 20 3d 20 65 2e 74 2d 31 2c 20 77 | 2;.....}...}....var.j.=.e.t-1,.w |
3120 | 2c 20 69 73 31 20 3d 20 74 72 75 65 2c 20 72 32 20 3d 20 6e 62 69 28 29 2c 20 74 3b 0a 20 20 69 | ,.is1.=.true,.r2.=.nbi(),.t;...i |
3140 | 20 3d 20 6e 62 69 74 73 28 65 5b 6a 5d 29 2d 31 3b 0a 20 20 77 68 69 6c 65 28 6a 20 3e 3d 20 30 | .=.nbits(e[j])-1;...while(j.>=.0 |
3160 | 29 20 7b 0a 20 20 20 20 69 66 28 69 20 3e 3d 20 6b 31 29 20 77 20 3d 20 28 65 5b 6a 5d 3e 3e 28 | ).{.....if(i.>=.k1).w.=.(e[j]>>( |
3180 | 69 2d 6b 31 29 29 26 6b 6d 3b 0a 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 77 20 3d 20 | i-k1))&km;.....else.{.......w.=. |
31a0 | 28 65 5b 6a 5d 26 28 28 31 3c 3c 28 69 2b 31 29 29 2d 31 29 29 3c 3c 28 6b 31 2d 69 29 3b 0a 20 | (e[j]&((1<<(i+1))-1))<<(k1-i);.. |
31c0 | 20 20 20 20 20 69 66 28 6a 20 3e 20 30 29 20 77 20 7c 3d 20 65 5b 6a 2d 31 5d 3e 3e 28 74 68 69 | .....if(j.>.0).w.|=.e[j-1]>>(thi |
31e0 | 73 2e 44 42 2b 69 2d 6b 31 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 6e 20 3d 20 6b 3b 0a 20 20 | s.DB+i-k1);.....}......n.=.k;... |
3200 | 20 20 77 68 69 6c 65 28 28 77 26 31 29 20 3d 3d 20 30 29 20 7b 20 77 20 3e 3e 3d 20 31 3b 20 2d | ..while((w&1).==.0).{.w.>>=.1;.- |
3220 | 2d 6e 3b 20 7d 0a 20 20 20 20 69 66 28 28 69 20 2d 3d 20 6e 29 20 3c 20 30 29 20 7b 20 69 20 2b | -n;.}.....if((i.-=.n).<.0).{.i.+ |
3240 | 3d 20 74 68 69 73 2e 44 42 3b 20 2d 2d 6a 3b 20 7d 0a 20 20 20 20 69 66 28 69 73 31 29 20 7b 09 | =.this.DB;.--j;.}.....if(is1).{. |
3260 | 2f 2f 20 72 65 74 20 3d 3d 20 31 2c 20 64 6f 6e 27 74 20 62 6f 74 68 65 72 20 73 71 75 61 72 69 | //.ret.==.1,.don't.bother.squari |
3280 | 6e 67 20 6f 72 20 6d 75 6c 74 69 70 6c 79 69 6e 67 20 69 74 0a 20 20 20 20 20 20 67 5b 77 5d 2e | ng.or.multiplying.it.......g[w]. |
32a0 | 63 6f 70 79 54 6f 28 72 29 3b 0a 20 20 20 20 20 20 69 73 31 20 3d 20 66 61 6c 73 65 3b 0a 20 20 | copyTo(r);.......is1.=.false;... |
32c0 | 20 20 7d 0a 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 77 68 69 6c 65 28 6e 20 3e 20 31 | ..}.....else.{.......while(n.>.1 |
32e0 | 29 20 7b 20 7a 2e 73 71 72 54 6f 28 72 2c 72 32 29 3b 20 7a 2e 73 71 72 54 6f 28 72 32 2c 72 29 | ).{.z.sqrTo(r,r2);.z.sqrTo(r2,r) |
3300 | 3b 20 6e 20 2d 3d 20 32 3b 20 7d 0a 20 20 20 20 20 20 69 66 28 6e 20 3e 20 30 29 20 7a 2e 73 71 | ;.n.-=.2;.}.......if(n.>.0).z.sq |
3320 | 72 54 6f 28 72 2c 72 32 29 3b 20 65 6c 73 65 20 7b 20 74 20 3d 20 72 3b 20 72 20 3d 20 72 32 3b | rTo(r,r2);.else.{.t.=.r;.r.=.r2; |
3340 | 20 72 32 20 3d 20 74 3b 20 7d 0a 20 20 20 20 20 20 7a 2e 6d 75 6c 54 6f 28 72 32 2c 67 5b 77 5d | .r2.=.t;.}.......z.mulTo(r2,g[w] |
3360 | 2c 72 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 77 68 69 6c 65 28 6a 20 3e 3d 20 30 20 26 26 20 | ,r);.....}......while(j.>=.0.&&. |
3380 | 28 65 5b 6a 5d 26 28 31 3c 3c 69 29 29 20 3d 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 7a 2e 73 71 | (e[j]&(1<<i)).==.0).{.......z.sq |
33a0 | 72 54 6f 28 72 2c 72 32 29 3b 20 74 20 3d 20 72 3b 20 72 20 3d 20 72 32 3b 20 72 32 20 3d 20 74 | rTo(r,r2);.t.=.r;.r.=.r2;.r2.=.t |
33c0 | 3b 0a 20 20 20 20 20 20 69 66 28 2d 2d 69 20 3c 20 30 29 20 7b 20 69 20 3d 20 74 68 69 73 2e 44 | ;.......if(--i.<.0).{.i.=.this.D |
33e0 | 42 2d 31 3b 20 2d 2d 6a 3b 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 72 65 74 75 72 6e 20 7a | B-1;.--j;.}.....}...}...return.z |
3400 | 2e 72 65 76 65 72 74 28 72 29 3b 0a 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 67 63 64 28 74 | .revert(r);.}..//.(public).gcd(t |
3420 | 68 69 73 2c 61 29 20 28 48 41 43 20 31 34 2e 35 34 29 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 47 43 | his,a).(HAC.14.54).function.bnGC |
3440 | 44 28 61 29 20 7b 0a 20 20 76 61 72 20 78 20 3d 20 28 74 68 69 73 2e 73 3c 30 29 3f 74 68 69 73 | D(a).{...var.x.=.(this.s<0)?this |
3460 | 2e 6e 65 67 61 74 65 28 29 3a 74 68 69 73 2e 63 6c 6f 6e 65 28 29 3b 0a 20 20 76 61 72 20 79 20 | .negate():this.clone();...var.y. |
3480 | 3d 20 28 61 2e 73 3c 30 29 3f 61 2e 6e 65 67 61 74 65 28 29 3a 61 2e 63 6c 6f 6e 65 28 29 3b 0a | =.(a.s<0)?a.negate():a.clone();. |
34a0 | 20 20 69 66 28 78 2e 63 6f 6d 70 61 72 65 54 6f 28 79 29 20 3c 20 30 29 20 7b 20 76 61 72 20 74 | ..if(x.compareTo(y).<.0).{.var.t |
34c0 | 20 3d 20 78 3b 20 78 20 3d 20 79 3b 20 79 20 3d 20 74 3b 20 7d 0a 20 20 76 61 72 20 69 20 3d 20 | .=.x;.x.=.y;.y.=.t;.}...var.i.=. |
34e0 | 78 2e 67 65 74 4c 6f 77 65 73 74 53 65 74 42 69 74 28 29 2c 20 67 20 3d 20 79 2e 67 65 74 4c 6f | x.getLowestSetBit(),.g.=.y.getLo |
3500 | 77 65 73 74 53 65 74 42 69 74 28 29 3b 0a 20 20 69 66 28 67 20 3c 20 30 29 20 72 65 74 75 72 6e | westSetBit();...if(g.<.0).return |
3520 | 20 78 3b 0a 20 20 69 66 28 69 20 3c 20 67 29 20 67 20 3d 20 69 3b 0a 20 20 69 66 28 67 20 3e 20 | .x;...if(i.<.g).g.=.i;...if(g.>. |
3540 | 30 29 20 7b 0a 20 20 20 20 78 2e 72 53 68 69 66 74 54 6f 28 67 2c 78 29 3b 0a 20 20 20 20 79 2e | 0).{.....x.rShiftTo(g,x);.....y. |
3560 | 72 53 68 69 66 74 54 6f 28 67 2c 79 29 3b 0a 20 20 7d 0a 20 20 77 68 69 6c 65 28 78 2e 73 69 67 | rShiftTo(g,y);...}...while(x.sig |
3580 | 6e 75 6d 28 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 69 66 28 28 69 20 3d 20 78 2e 67 65 74 4c 6f | num().>.0).{.....if((i.=.x.getLo |
35a0 | 77 65 73 74 53 65 74 42 69 74 28 29 29 20 3e 20 30 29 20 78 2e 72 53 68 69 66 74 54 6f 28 69 2c | westSetBit()).>.0).x.rShiftTo(i, |
35c0 | 78 29 3b 0a 20 20 20 20 69 66 28 28 69 20 3d 20 79 2e 67 65 74 4c 6f 77 65 73 74 53 65 74 42 69 | x);.....if((i.=.y.getLowestSetBi |
35e0 | 74 28 29 29 20 3e 20 30 29 20 79 2e 72 53 68 69 66 74 54 6f 28 69 2c 79 29 3b 0a 20 20 20 20 69 | t()).>.0).y.rShiftTo(i,y);.....i |
3600 | 66 28 78 2e 63 6f 6d 70 61 72 65 54 6f 28 79 29 20 3e 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 78 | f(x.compareTo(y).>=.0).{.......x |
3620 | 2e 73 75 62 54 6f 28 79 2c 78 29 3b 0a 20 20 20 20 20 20 78 2e 72 53 68 69 66 74 54 6f 28 31 2c | .subTo(y,x);.......x.rShiftTo(1, |
3640 | 78 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 79 2e 73 75 62 | x);.....}.....else.{.......y.sub |
3660 | 54 6f 28 78 2c 79 29 3b 0a 20 20 20 20 20 20 79 2e 72 53 68 69 66 74 54 6f 28 31 2c 79 29 3b 0a | To(x,y);.......y.rShiftTo(1,y);. |
3680 | 20 20 20 20 7d 0a 20 20 7d 0a 20 20 69 66 28 67 20 3e 20 30 29 20 79 2e 6c 53 68 69 66 74 54 6f | ....}...}...if(g.>.0).y.lShiftTo |
36a0 | 28 67 2c 79 29 3b 0a 20 20 72 65 74 75 72 6e 20 79 3b 0a 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 | (g,y);...return.y;.}..//.(protec |
36c0 | 74 65 64 29 20 74 68 69 73 20 25 20 6e 2c 20 6e 20 3c 20 32 5e 32 36 0a 66 75 6e 63 74 69 6f 6e | ted).this.%.n,.n.<.2^26.function |
36e0 | 20 62 6e 70 4d 6f 64 49 6e 74 28 6e 29 20 7b 0a 20 20 69 66 28 6e 20 3c 3d 20 30 29 20 72 65 74 | .bnpModInt(n).{...if(n.<=.0).ret |
3700 | 75 72 6e 20 30 3b 0a 20 20 76 61 72 20 64 20 3d 20 74 68 69 73 2e 44 56 25 6e 2c 20 72 20 3d 20 | urn.0;...var.d.=.this.DV%n,.r.=. |
3720 | 28 74 68 69 73 2e 73 3c 30 29 3f 6e 2d 31 3a 30 3b 0a 20 20 69 66 28 74 68 69 73 2e 74 20 3e 20 | (this.s<0)?n-1:0;...if(this.t.>. |
3740 | 30 29 0a 20 20 20 20 69 66 28 64 20 3d 3d 20 30 29 20 72 20 3d 20 74 68 69 73 5b 30 5d 25 6e 3b | 0).....if(d.==.0).r.=.this[0]%n; |
3760 | 0a 20 20 20 20 65 6c 73 65 20 66 6f 72 28 76 61 72 20 69 20 3d 20 74 68 69 73 2e 74 2d 31 3b 20 | .....else.for(var.i.=.this.t-1;. |
3780 | 69 20 3e 3d 20 30 3b 20 2d 2d 69 29 20 72 20 3d 20 28 64 2a 72 2b 74 68 69 73 5b 69 5d 29 25 6e | i.>=.0;.--i).r.=.(d*r+this[i])%n |
37a0 | 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 31 2f 74 | ;...return.r;.}..//.(public).1/t |
37c0 | 68 69 73 20 25 20 6d 20 28 48 41 43 20 31 34 2e 36 31 29 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 4d | his.%.m.(HAC.14.61).function.bnM |
37e0 | 6f 64 49 6e 76 65 72 73 65 28 6d 29 20 7b 0a 20 20 76 61 72 20 61 63 20 3d 20 6d 2e 69 73 45 76 | odInverse(m).{...var.ac.=.m.isEv |
3800 | 65 6e 28 29 3b 0a 20 20 69 66 28 28 74 68 69 73 2e 69 73 45 76 65 6e 28 29 20 26 26 20 61 63 29 | en();...if((this.isEven().&&.ac) |
3820 | 20 7c 7c 20 6d 2e 73 69 67 6e 75 6d 28 29 20 3d 3d 20 30 29 20 72 65 74 75 72 6e 20 42 69 67 49 | .||.m.signum().==.0).return.BigI |
3840 | 6e 74 65 67 65 72 2e 5a 45 52 4f 3b 0a 20 20 76 61 72 20 75 20 3d 20 6d 2e 63 6c 6f 6e 65 28 29 | nteger.ZERO;...var.u.=.m.clone() |
3860 | 2c 20 76 20 3d 20 74 68 69 73 2e 63 6c 6f 6e 65 28 29 3b 0a 20 20 76 61 72 20 61 20 3d 20 6e 62 | ,.v.=.this.clone();...var.a.=.nb |
3880 | 76 28 31 29 2c 20 62 20 3d 20 6e 62 76 28 30 29 2c 20 63 20 3d 20 6e 62 76 28 30 29 2c 20 64 20 | v(1),.b.=.nbv(0),.c.=.nbv(0),.d. |
38a0 | 3d 20 6e 62 76 28 31 29 3b 0a 20 20 77 68 69 6c 65 28 75 2e 73 69 67 6e 75 6d 28 29 20 21 3d 20 | =.nbv(1);...while(u.signum().!=. |
38c0 | 30 29 20 7b 0a 20 20 20 20 77 68 69 6c 65 28 75 2e 69 73 45 76 65 6e 28 29 29 20 7b 0a 20 20 20 | 0).{.....while(u.isEven()).{.... |
38e0 | 20 20 20 75 2e 72 53 68 69 66 74 54 6f 28 31 2c 75 29 3b 0a 20 20 20 20 20 20 69 66 28 61 63 29 | ...u.rShiftTo(1,u);.......if(ac) |
3900 | 20 7b 0a 20 20 20 20 20 20 20 20 69 66 28 21 61 2e 69 73 45 76 65 6e 28 29 20 7c 7c 20 21 62 2e | .{.........if(!a.isEven().||.!b. |
3920 | 69 73 45 76 65 6e 28 29 29 20 7b 20 61 2e 61 64 64 54 6f 28 74 68 69 73 2c 61 29 3b 20 62 2e 73 | isEven()).{.a.addTo(this,a);.b.s |
3940 | 75 62 54 6f 28 6d 2c 62 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 61 2e 72 53 68 69 66 74 54 6f 28 | ubTo(m,b);.}.........a.rShiftTo( |
3960 | 31 2c 61 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 65 6c 73 65 20 69 66 28 21 62 2e 69 | 1,a);.......}.......else.if(!b.i |
3980 | 73 45 76 65 6e 28 29 29 20 62 2e 73 75 62 54 6f 28 6d 2c 62 29 3b 0a 20 20 20 20 20 20 62 2e 72 | sEven()).b.subTo(m,b);.......b.r |
39a0 | 53 68 69 66 74 54 6f 28 31 2c 62 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 77 68 69 6c 65 28 76 2e | ShiftTo(1,b);.....}.....while(v. |
39c0 | 69 73 45 76 65 6e 28 29 29 20 7b 0a 20 20 20 20 20 20 76 2e 72 53 68 69 66 74 54 6f 28 31 2c 76 | isEven()).{.......v.rShiftTo(1,v |
39e0 | 29 3b 0a 20 20 20 20 20 20 69 66 28 61 63 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 28 21 63 2e | );.......if(ac).{.........if(!c. |
3a00 | 69 73 45 76 65 6e 28 29 20 7c 7c 20 21 64 2e 69 73 45 76 65 6e 28 29 29 20 7b 20 63 2e 61 64 64 | isEven().||.!d.isEven()).{.c.add |
3a20 | 54 6f 28 74 68 69 73 2c 63 29 3b 20 64 2e 73 75 62 54 6f 28 6d 2c 64 29 3b 20 7d 0a 20 20 20 20 | To(this,c);.d.subTo(m,d);.}..... |
3a40 | 20 20 20 20 63 2e 72 53 68 69 66 74 54 6f 28 31 2c 63 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 | ....c.rShiftTo(1,c);.......}.... |
3a60 | 20 20 20 65 6c 73 65 20 69 66 28 21 64 2e 69 73 45 76 65 6e 28 29 29 20 64 2e 73 75 62 54 6f 28 | ...else.if(!d.isEven()).d.subTo( |
3a80 | 6d 2c 64 29 3b 0a 20 20 20 20 20 20 64 2e 72 53 68 69 66 74 54 6f 28 31 2c 64 29 3b 0a 20 20 20 | m,d);.......d.rShiftTo(1,d);.... |
3aa0 | 20 7d 0a 20 20 20 20 69 66 28 75 2e 63 6f 6d 70 61 72 65 54 6f 28 76 29 20 3e 3d 20 30 29 20 7b | .}.....if(u.compareTo(v).>=.0).{ |
3ac0 | 0a 20 20 20 20 20 20 75 2e 73 75 62 54 6f 28 76 2c 75 29 3b 0a 20 20 20 20 20 20 69 66 28 61 63 | .......u.subTo(v,u);.......if(ac |
3ae0 | 29 20 61 2e 73 75 62 54 6f 28 63 2c 61 29 3b 0a 20 20 20 20 20 20 62 2e 73 75 62 54 6f 28 64 2c | ).a.subTo(c,a);.......b.subTo(d, |
3b00 | 62 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 76 2e 73 75 62 | b);.....}.....else.{.......v.sub |
3b20 | 54 6f 28 75 2c 76 29 3b 0a 20 20 20 20 20 20 69 66 28 61 63 29 20 63 2e 73 75 62 54 6f 28 61 2c | To(u,v);.......if(ac).c.subTo(a, |
3b40 | 63 29 3b 0a 20 20 20 20 20 20 64 2e 73 75 62 54 6f 28 62 2c 64 29 3b 0a 20 20 20 20 7d 0a 20 20 | c);.......d.subTo(b,d);.....}... |
3b60 | 7d 0a 20 20 69 66 28 76 2e 63 6f 6d 70 61 72 65 54 6f 28 42 69 67 49 6e 74 65 67 65 72 2e 4f 4e | }...if(v.compareTo(BigInteger.ON |
3b80 | 45 29 20 21 3d 20 30 29 20 72 65 74 75 72 6e 20 42 69 67 49 6e 74 65 67 65 72 2e 5a 45 52 4f 3b | E).!=.0).return.BigInteger.ZERO; |
3ba0 | 0a 20 20 69 66 28 64 2e 63 6f 6d 70 61 72 65 54 6f 28 6d 29 20 3e 3d 20 30 29 20 72 65 74 75 72 | ...if(d.compareTo(m).>=.0).retur |
3bc0 | 6e 20 64 2e 73 75 62 74 72 61 63 74 28 6d 29 3b 0a 20 20 69 66 28 64 2e 73 69 67 6e 75 6d 28 29 | n.d.subtract(m);...if(d.signum() |
3be0 | 20 3c 20 30 29 20 64 2e 61 64 64 54 6f 28 6d 2c 64 29 3b 20 65 6c 73 65 20 72 65 74 75 72 6e 20 | .<.0).d.addTo(m,d);.else.return. |
3c00 | 64 3b 0a 20 20 69 66 28 64 2e 73 69 67 6e 75 6d 28 29 20 3c 20 30 29 20 72 65 74 75 72 6e 20 64 | d;...if(d.signum().<.0).return.d |
3c20 | 2e 61 64 64 28 6d 29 3b 20 65 6c 73 65 20 72 65 74 75 72 6e 20 64 3b 0a 7d 0a 0a 76 61 72 20 6c | .add(m);.else.return.d;.}..var.l |
3c40 | 6f 77 70 72 69 6d 65 73 20 3d 20 5b 32 2c 33 2c 35 2c 37 2c 31 31 2c 31 33 2c 31 37 2c 31 39 2c | owprimes.=.[2,3,5,7,11,13,17,19, |
3c60 | 32 33 2c 32 39 2c 33 31 2c 33 37 2c 34 31 2c 34 33 2c 34 37 2c 35 33 2c 35 39 2c 36 31 2c 36 37 | 23,29,31,37,41,43,47,53,59,61,67 |
3c80 | 2c 37 31 2c 37 33 2c 37 39 2c 38 33 2c 38 39 2c 39 37 2c 31 30 31 2c 31 30 33 2c 31 30 37 2c 31 | ,71,73,79,83,89,97,101,103,107,1 |
3ca0 | 30 39 2c 31 31 33 2c 31 32 37 2c 31 33 31 2c 31 33 37 2c 31 33 39 2c 31 34 39 2c 31 35 31 2c 31 | 09,113,127,131,137,139,149,151,1 |
3cc0 | 35 37 2c 31 36 33 2c 31 36 37 2c 31 37 33 2c 31 37 39 2c 31 38 31 2c 31 39 31 2c 31 39 33 2c 31 | 57,163,167,173,179,181,191,193,1 |
3ce0 | 39 37 2c 31 39 39 2c 32 31 31 2c 32 32 33 2c 32 32 37 2c 32 32 39 2c 32 33 33 2c 32 33 39 2c 32 | 97,199,211,223,227,229,233,239,2 |
3d00 | 34 31 2c 32 35 31 2c 32 35 37 2c 32 36 33 2c 32 36 39 2c 32 37 31 2c 32 37 37 2c 32 38 31 2c 32 | 41,251,257,263,269,271,277,281,2 |
3d20 | 38 33 2c 32 39 33 2c 33 30 37 2c 33 31 31 2c 33 31 33 2c 33 31 37 2c 33 33 31 2c 33 33 37 2c 33 | 83,293,307,311,313,317,331,337,3 |
3d40 | 34 37 2c 33 34 39 2c 33 35 33 2c 33 35 39 2c 33 36 37 2c 33 37 33 2c 33 37 39 2c 33 38 33 2c 33 | 47,349,353,359,367,373,379,383,3 |
3d60 | 38 39 2c 33 39 37 2c 34 30 31 2c 34 30 39 2c 34 31 39 2c 34 32 31 2c 34 33 31 2c 34 33 33 2c 34 | 89,397,401,409,419,421,431,433,4 |
3d80 | 33 39 2c 34 34 33 2c 34 34 39 2c 34 35 37 2c 34 36 31 2c 34 36 33 2c 34 36 37 2c 34 37 39 2c 34 | 39,443,449,457,461,463,467,479,4 |
3da0 | 38 37 2c 34 39 31 2c 34 39 39 2c 35 30 33 2c 35 30 39 5d 3b 0a 76 61 72 20 6c 70 6c 69 6d 20 3d | 87,491,499,503,509];.var.lplim.= |
3dc0 | 20 28 31 3c 3c 32 36 29 2f 6c 6f 77 70 72 69 6d 65 73 5b 6c 6f 77 70 72 69 6d 65 73 2e 6c 65 6e | .(1<<26)/lowprimes[lowprimes.len |
3de0 | 67 74 68 2d 31 5d 3b 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 65 73 74 20 70 72 69 6d 61 6c | gth-1];..//.(public).test.primal |
3e00 | 69 74 79 20 77 69 74 68 20 63 65 72 74 61 69 6e 74 79 20 3e 3d 20 31 2d 2e 35 5e 74 0a 66 75 6e | ity.with.certainty.>=.1-.5^t.fun |
3e20 | 63 74 69 6f 6e 20 62 6e 49 73 50 72 6f 62 61 62 6c 65 50 72 69 6d 65 28 74 29 20 7b 0a 20 20 76 | ction.bnIsProbablePrime(t).{...v |
3e40 | 61 72 20 69 2c 20 78 20 3d 20 74 68 69 73 2e 61 62 73 28 29 3b 0a 20 20 69 66 28 78 2e 74 20 3d | ar.i,.x.=.this.abs();...if(x.t.= |
3e60 | 3d 20 31 20 26 26 20 78 5b 30 5d 20 3c 3d 20 6c 6f 77 70 72 69 6d 65 73 5b 6c 6f 77 70 72 69 6d | =.1.&&.x[0].<=.lowprimes[lowprim |
3e80 | 65 73 2e 6c 65 6e 67 74 68 2d 31 5d 29 20 7b 0a 20 20 20 20 66 6f 72 28 69 20 3d 20 30 3b 20 69 | es.length-1]).{.....for(i.=.0;.i |
3ea0 | 20 3c 20 6c 6f 77 70 72 69 6d 65 73 2e 6c 65 6e 67 74 68 3b 20 2b 2b 69 29 0a 20 20 20 20 20 20 | .<.lowprimes.length;.++i)....... |
3ec0 | 69 66 28 78 5b 30 5d 20 3d 3d 20 6c 6f 77 70 72 69 6d 65 73 5b 69 5d 29 20 72 65 74 75 72 6e 20 | if(x[0].==.lowprimes[i]).return. |
3ee0 | 74 72 75 65 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 20 20 69 66 | true;.....return.false;...}...if |
3f00 | 28 78 2e 69 73 45 76 65 6e 28 29 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 69 20 3d | (x.isEven()).return.false;...i.= |
3f20 | 20 31 3b 0a 20 20 77 68 69 6c 65 28 69 20 3c 20 6c 6f 77 70 72 69 6d 65 73 2e 6c 65 6e 67 74 68 | .1;...while(i.<.lowprimes.length |
3f40 | 29 20 7b 0a 20 20 20 20 76 61 72 20 6d 20 3d 20 6c 6f 77 70 72 69 6d 65 73 5b 69 5d 2c 20 6a 20 | ).{.....var.m.=.lowprimes[i],.j. |
3f60 | 3d 20 69 2b 31 3b 0a 20 20 20 20 77 68 69 6c 65 28 6a 20 3c 20 6c 6f 77 70 72 69 6d 65 73 2e 6c | =.i+1;.....while(j.<.lowprimes.l |
3f80 | 65 6e 67 74 68 20 26 26 20 6d 20 3c 20 6c 70 6c 69 6d 29 20 6d 20 2a 3d 20 6c 6f 77 70 72 69 6d | ength.&&.m.<.lplim).m.*=.lowprim |
3fa0 | 65 73 5b 6a 2b 2b 5d 3b 0a 20 20 20 20 6d 20 3d 20 78 2e 6d 6f 64 49 6e 74 28 6d 29 3b 0a 20 20 | es[j++];.....m.=.x.modInt(m);... |
3fc0 | 20 20 77 68 69 6c 65 28 69 20 3c 20 6a 29 20 69 66 28 6d 25 6c 6f 77 70 72 69 6d 65 73 5b 69 2b | ..while(i.<.j).if(m%lowprimes[i+ |
3fe0 | 2b 5d 20 3d 3d 20 30 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 20 20 72 65 74 | +].==.0).return.false;...}...ret |
4000 | 75 72 6e 20 78 2e 6d 69 6c 6c 65 72 52 61 62 69 6e 28 74 29 3b 0a 7d 0a 0a 2f 2f 20 28 70 72 6f | urn.x.millerRabin(t);.}..//.(pro |
4020 | 74 65 63 74 65 64 29 20 74 72 75 65 20 69 66 20 70 72 6f 62 61 62 6c 79 20 70 72 69 6d 65 20 28 | tected).true.if.probably.prime.( |
4040 | 48 41 43 20 34 2e 32 34 2c 20 4d 69 6c 6c 65 72 2d 52 61 62 69 6e 29 0a 66 75 6e 63 74 69 6f 6e | HAC.4.24,.Miller-Rabin).function |
4060 | 20 62 6e 70 4d 69 6c 6c 65 72 52 61 62 69 6e 28 74 29 20 7b 0a 20 20 76 61 72 20 6e 31 20 3d 20 | .bnpMillerRabin(t).{...var.n1.=. |
4080 | 74 68 69 73 2e 73 75 62 74 72 61 63 74 28 42 69 67 49 6e 74 65 67 65 72 2e 4f 4e 45 29 3b 0a 20 | this.subtract(BigInteger.ONE);.. |
40a0 | 20 76 61 72 20 6b 20 3d 20 6e 31 2e 67 65 74 4c 6f 77 65 73 74 53 65 74 42 69 74 28 29 3b 0a 20 | .var.k.=.n1.getLowestSetBit();.. |
40c0 | 20 69 66 28 6b 20 3c 3d 20 30 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 76 61 72 20 | .if(k.<=.0).return.false;...var. |
40e0 | 72 20 3d 20 6e 31 2e 73 68 69 66 74 52 69 67 68 74 28 6b 29 3b 0a 20 20 74 20 3d 20 28 74 2b 31 | r.=.n1.shiftRight(k);...t.=.(t+1 |
4100 | 29 3e 3e 31 3b 0a 20 20 69 66 28 74 20 3e 20 6c 6f 77 70 72 69 6d 65 73 2e 6c 65 6e 67 74 68 29 | )>>1;...if(t.>.lowprimes.length) |
4120 | 20 74 20 3d 20 6c 6f 77 70 72 69 6d 65 73 2e 6c 65 6e 67 74 68 3b 0a 20 20 76 61 72 20 61 20 3d | .t.=.lowprimes.length;...var.a.= |
4140 | 20 6e 62 69 28 29 3b 0a 20 20 66 6f 72 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 74 3b 20 | .nbi();...for(var.i.=.0;.i.<.t;. |
4160 | 2b 2b 69 29 20 7b 0a 20 20 20 20 61 2e 66 72 6f 6d 49 6e 74 28 6c 6f 77 70 72 69 6d 65 73 5b 69 | ++i).{.....a.fromInt(lowprimes[i |
4180 | 5d 29 3b 0a 20 20 20 20 76 61 72 20 79 20 3d 20 61 2e 6d 6f 64 50 6f 77 28 72 2c 74 68 69 73 29 | ]);.....var.y.=.a.modPow(r,this) |
41a0 | 3b 0a 20 20 20 20 69 66 28 79 2e 63 6f 6d 70 61 72 65 54 6f 28 42 69 67 49 6e 74 65 67 65 72 2e | ;.....if(y.compareTo(BigInteger. |
41c0 | 4f 4e 45 29 20 21 3d 20 30 20 26 26 20 79 2e 63 6f 6d 70 61 72 65 54 6f 28 6e 31 29 20 21 3d 20 | ONE).!=.0.&&.y.compareTo(n1).!=. |
41e0 | 30 29 20 7b 0a 20 20 20 20 20 20 76 61 72 20 6a 20 3d 20 31 3b 0a 20 20 20 20 20 20 77 68 69 6c | 0).{.......var.j.=.1;.......whil |
4200 | 65 28 6a 2b 2b 20 3c 20 6b 20 26 26 20 79 2e 63 6f 6d 70 61 72 65 54 6f 28 6e 31 29 20 21 3d 20 | e(j++.<.k.&&.y.compareTo(n1).!=. |
4220 | 30 29 20 7b 0a 20 20 20 20 20 20 20 20 79 20 3d 20 79 2e 6d 6f 64 50 6f 77 49 6e 74 28 32 2c 74 | 0).{.........y.=.y.modPowInt(2,t |
4240 | 68 69 73 29 3b 0a 20 20 20 20 20 20 20 20 69 66 28 79 2e 63 6f 6d 70 61 72 65 54 6f 28 42 69 67 | his);.........if(y.compareTo(Big |
4260 | 49 6e 74 65 67 65 72 2e 4f 4e 45 29 20 3d 3d 20 30 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b | Integer.ONE).==.0).return.false; |
4280 | 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 69 66 28 79 2e 63 6f 6d 70 61 72 65 54 6f 28 6e 31 | .......}.......if(y.compareTo(n1 |
42a0 | 29 20 21 3d 20 30 29 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a | ).!=.0).return.false;.....}...}. |
42c0 | 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 2f 2f 20 70 72 6f 74 65 63 74 65 64 0a 42 | ..return.true;.}..//.protected.B |
42e0 | 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 63 68 75 6e 6b 53 69 7a 65 20 3d 20 | igInteger.prototype.chunkSize.=. |
4300 | 62 6e 70 43 68 75 6e 6b 53 69 7a 65 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 | bnpChunkSize;.BigInteger.prototy |
4320 | 70 65 2e 74 6f 52 61 64 69 78 20 3d 20 62 6e 70 54 6f 52 61 64 69 78 3b 0a 42 69 67 49 6e 74 65 | pe.toRadix.=.bnpToRadix;.BigInte |
4340 | 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 66 72 6f 6d 52 61 64 69 78 20 3d 20 62 6e 70 46 72 6f | ger.prototype.fromRadix.=.bnpFro |
4360 | 6d 52 61 64 69 78 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 66 72 6f | mRadix;.BigInteger.prototype.fro |
4380 | 6d 4e 75 6d 62 65 72 20 3d 20 62 6e 70 46 72 6f 6d 4e 75 6d 62 65 72 3b 0a 42 69 67 49 6e 74 65 | mNumber.=.bnpFromNumber;.BigInte |
43a0 | 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 62 69 74 77 69 73 65 54 6f 20 3d 20 62 6e 70 42 69 74 | ger.prototype.bitwiseTo.=.bnpBit |
43c0 | 77 69 73 65 54 6f 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 63 68 61 | wiseTo;.BigInteger.prototype.cha |
43e0 | 6e 67 65 42 69 74 20 3d 20 62 6e 70 43 68 61 6e 67 65 42 69 74 3b 0a 42 69 67 49 6e 74 65 67 65 | ngeBit.=.bnpChangeBit;.BigIntege |
4400 | 72 2e 70 72 6f 74 6f 74 79 70 65 2e 61 64 64 54 6f 20 3d 20 62 6e 70 41 64 64 54 6f 3b 0a 42 69 | r.prototype.addTo.=.bnpAddTo;.Bi |
4420 | 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 64 4d 75 6c 74 69 70 6c 79 20 3d 20 62 | gInteger.prototype.dMultiply.=.b |
4440 | 6e 70 44 4d 75 6c 74 69 70 6c 79 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 | npDMultiply;.BigInteger.prototyp |
4460 | 65 2e 64 41 64 64 4f 66 66 73 65 74 20 3d 20 62 6e 70 44 41 64 64 4f 66 66 73 65 74 3b 0a 42 69 | e.dAddOffset.=.bnpDAddOffset;.Bi |
4480 | 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 75 6c 74 69 70 6c 79 4c 6f 77 65 72 | gInteger.prototype.multiplyLower |
44a0 | 54 6f 20 3d 20 62 6e 70 4d 75 6c 74 69 70 6c 79 4c 6f 77 65 72 54 6f 3b 0a 42 69 67 49 6e 74 65 | To.=.bnpMultiplyLowerTo;.BigInte |
44c0 | 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 75 6c 74 69 70 6c 79 55 70 70 65 72 54 6f 20 3d 20 | ger.prototype.multiplyUpperTo.=. |
44e0 | 62 6e 70 4d 75 6c 74 69 70 6c 79 55 70 70 65 72 54 6f 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 | bnpMultiplyUpperTo;.BigInteger.p |
4500 | 72 6f 74 6f 74 79 70 65 2e 6d 6f 64 49 6e 74 20 3d 20 62 6e 70 4d 6f 64 49 6e 74 3b 0a 42 69 67 | rototype.modInt.=.bnpModInt;.Big |
4520 | 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 69 6c 6c 65 72 52 61 62 69 6e 20 3d 20 | Integer.prototype.millerRabin.=. |
4540 | 62 6e 70 4d 69 6c 6c 65 72 52 61 62 69 6e 3b 0a 0a 2f 2f 20 70 75 62 6c 69 63 0a 42 69 67 49 6e | bnpMillerRabin;..//.public.BigIn |
4560 | 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 63 6c 6f 6e 65 20 3d 20 62 6e 43 6c 6f 6e 65 3b | teger.prototype.clone.=.bnClone; |
4580 | 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 69 6e 74 56 61 6c 75 65 20 3d | .BigInteger.prototype.intValue.= |
45a0 | 20 62 6e 49 6e 74 56 61 6c 75 65 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 | .bnIntValue;.BigInteger.prototyp |
45c0 | 65 2e 62 79 74 65 56 61 6c 75 65 20 3d 20 62 6e 42 79 74 65 56 61 6c 75 65 3b 0a 42 69 67 49 6e | e.byteValue.=.bnByteValue;.BigIn |
45e0 | 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 73 68 6f 72 74 56 61 6c 75 65 20 3d 20 62 6e 53 | teger.prototype.shortValue.=.bnS |
4600 | 68 6f 72 74 56 61 6c 75 65 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e | hortValue;.BigInteger.prototype. |
4620 | 73 69 67 6e 75 6d 20 3d 20 62 6e 53 69 67 4e 75 6d 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 | signum.=.bnSigNum;.BigInteger.pr |
4640 | 6f 74 6f 74 79 70 65 2e 74 6f 42 79 74 65 41 72 72 61 79 20 3d 20 62 6e 54 6f 42 79 74 65 41 72 | ototype.toByteArray.=.bnToByteAr |
4660 | 72 61 79 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 65 71 75 61 6c 73 | ray;.BigInteger.prototype.equals |
4680 | 20 3d 20 62 6e 45 71 75 61 6c 73 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 | .=.bnEquals;.BigInteger.prototyp |
46a0 | 65 2e 6d 69 6e 20 3d 20 62 6e 4d 69 6e 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 | e.min.=.bnMin;.BigInteger.protot |
46c0 | 79 70 65 2e 6d 61 78 20 3d 20 62 6e 4d 61 78 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 | ype.max.=.bnMax;.BigInteger.prot |
46e0 | 6f 74 79 70 65 2e 61 6e 64 20 3d 20 62 6e 41 6e 64 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 | otype.and.=.bnAnd;.BigInteger.pr |
4700 | 6f 74 6f 74 79 70 65 2e 6f 72 20 3d 20 62 6e 4f 72 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 | ototype.or.=.bnOr;.BigInteger.pr |
4720 | 6f 74 6f 74 79 70 65 2e 78 6f 72 20 3d 20 62 6e 58 6f 72 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e | ototype.xor.=.bnXor;.BigInteger. |
4740 | 70 72 6f 74 6f 74 79 70 65 2e 61 6e 64 4e 6f 74 20 3d 20 62 6e 41 6e 64 4e 6f 74 3b 0a 42 69 67 | prototype.andNot.=.bnAndNot;.Big |
4760 | 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6e 6f 74 20 3d 20 62 6e 4e 6f 74 3b 0a 42 | Integer.prototype.not.=.bnNot;.B |
4780 | 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 73 68 69 66 74 4c 65 66 74 20 3d 20 | igInteger.prototype.shiftLeft.=. |
47a0 | 62 6e 53 68 69 66 74 4c 65 66 74 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 | bnShiftLeft;.BigInteger.prototyp |
47c0 | 65 2e 73 68 69 66 74 52 69 67 68 74 20 3d 20 62 6e 53 68 69 66 74 52 69 67 68 74 3b 0a 42 69 67 | e.shiftRight.=.bnShiftRight;.Big |
47e0 | 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 67 65 74 4c 6f 77 65 73 74 53 65 74 42 69 | Integer.prototype.getLowestSetBi |
4800 | 74 20 3d 20 62 6e 47 65 74 4c 6f 77 65 73 74 53 65 74 42 69 74 3b 0a 42 69 67 49 6e 74 65 67 65 | t.=.bnGetLowestSetBit;.BigIntege |
4820 | 72 2e 70 72 6f 74 6f 74 79 70 65 2e 62 69 74 43 6f 75 6e 74 20 3d 20 62 6e 42 69 74 43 6f 75 6e | r.prototype.bitCount.=.bnBitCoun |
4840 | 74 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 74 65 73 74 42 69 74 20 | t;.BigInteger.prototype.testBit. |
4860 | 3d 20 62 6e 54 65 73 74 42 69 74 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 | =.bnTestBit;.BigInteger.prototyp |
4880 | 65 2e 73 65 74 42 69 74 20 3d 20 62 6e 53 65 74 42 69 74 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e | e.setBit.=.bnSetBit;.BigInteger. |
48a0 | 70 72 6f 74 6f 74 79 70 65 2e 63 6c 65 61 72 42 69 74 20 3d 20 62 6e 43 6c 65 61 72 42 69 74 3b | prototype.clearBit.=.bnClearBit; |
48c0 | 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 66 6c 69 70 42 69 74 20 3d 20 | .BigInteger.prototype.flipBit.=. |
48e0 | 62 6e 46 6c 69 70 42 69 74 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e | bnFlipBit;.BigInteger.prototype. |
4900 | 61 64 64 20 3d 20 62 6e 41 64 64 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 | add.=.bnAdd;.BigInteger.prototyp |
4920 | 65 2e 73 75 62 74 72 61 63 74 20 3d 20 62 6e 53 75 62 74 72 61 63 74 3b 0a 42 69 67 49 6e 74 65 | e.subtract.=.bnSubtract;.BigInte |
4940 | 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 75 6c 74 69 70 6c 79 20 3d 20 62 6e 4d 75 6c 74 69 | ger.prototype.multiply.=.bnMulti |
4960 | 70 6c 79 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 64 69 76 69 64 65 | ply;.BigInteger.prototype.divide |
4980 | 20 3d 20 62 6e 44 69 76 69 64 65 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 | .=.bnDivide;.BigInteger.prototyp |
49a0 | 65 2e 72 65 6d 61 69 6e 64 65 72 20 3d 20 62 6e 52 65 6d 61 69 6e 64 65 72 3b 0a 42 69 67 49 6e | e.remainder.=.bnRemainder;.BigIn |
49c0 | 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 64 69 76 69 64 65 41 6e 64 52 65 6d 61 69 6e 64 | teger.prototype.divideAndRemaind |
49e0 | 65 72 20 3d 20 62 6e 44 69 76 69 64 65 41 6e 64 52 65 6d 61 69 6e 64 65 72 3b 0a 42 69 67 49 6e | er.=.bnDivideAndRemainder;.BigIn |
4a00 | 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 6f 64 50 6f 77 20 3d 20 62 6e 4d 6f 64 50 6f | teger.prototype.modPow.=.bnModPo |
4a20 | 77 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 6f 64 49 6e 76 65 72 | w;.BigInteger.prototype.modInver |
4a40 | 73 65 20 3d 20 62 6e 4d 6f 64 49 6e 76 65 72 73 65 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 | se.=.bnModInverse;.BigInteger.pr |
4a60 | 6f 74 6f 74 79 70 65 2e 70 6f 77 20 3d 20 62 6e 50 6f 77 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e | ototype.pow.=.bnPow;.BigInteger. |
4a80 | 70 72 6f 74 6f 74 79 70 65 2e 67 63 64 20 3d 20 62 6e 47 43 44 3b 0a 42 69 67 49 6e 74 65 67 65 | prototype.gcd.=.bnGCD;.BigIntege |
4aa0 | 72 2e 70 72 6f 74 6f 74 79 70 65 2e 69 73 50 72 6f 62 61 62 6c 65 50 72 69 6d 65 20 3d 20 62 6e | r.prototype.isProbablePrime.=.bn |
4ac0 | 49 73 50 72 6f 62 61 62 6c 65 50 72 69 6d 65 3b 0a 0a 2f 2f 20 42 69 67 49 6e 74 65 67 65 72 20 | IsProbablePrime;..//.BigInteger. |
4ae0 | 69 6e 74 65 72 66 61 63 65 73 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 69 6e 20 6a 73 | interfaces.not.implemented.in.js |
4b00 | 62 6e 3a 0a 0a 2f 2f 20 42 69 67 49 6e 74 65 67 65 72 28 69 6e 74 20 73 69 67 6e 75 6d 2c 20 62 | bn:..//.BigInteger(int.signum,.b |
4b20 | 79 74 65 5b 5d 20 6d 61 67 6e 69 74 75 64 65 29 0a 2f 2f 20 64 6f 75 62 6c 65 20 64 6f 75 62 6c | yte[].magnitude).//.double.doubl |
4b40 | 65 56 61 6c 75 65 28 29 0a 2f 2f 20 66 6c 6f 61 74 20 66 6c 6f 61 74 56 61 6c 75 65 28 29 0a 2f | eValue().//.float.floatValue()./ |
4b60 | 2f 20 69 6e 74 20 68 61 73 68 43 6f 64 65 28 29 0a 2f 2f 20 6c 6f 6e 67 20 6c 6f 6e 67 56 61 6c | /.int.hashCode().//.long.longVal |
4b80 | 75 65 28 29 0a 2f 2f 20 73 74 61 74 69 63 20 42 69 67 49 6e 74 65 67 65 72 20 76 61 6c 75 65 4f | ue().//.static.BigInteger.valueO |
4ba0 | 66 28 6c 6f 6e 67 20 76 61 6c 29 0a 3b 0a 22 0d 5f 76 65 72 73 69 6f 6e 22 25 39 66 33 62 39 35 | f(long.val).;."._version"%9f3b95 |
4bc0 | 64 64 37 65 61 33 30 33 30 64 63 33 35 39 38 35 63 30 61 38 30 32 30 38 36 32 22 15 64 65 70 65 | dd7ea3030dc35985c0a8020862".depe |
4be0 | 6e 64 65 6e 63 79 5f 70 61 74 68 73 5b 06 7b 08 22 0a 6d 74 69 6d 65 22 1e 32 30 31 32 2d 30 39 | ndency_paths[.{.".mtime".2012-09 |
4c00 | 2d 31 38 54 31 35 3a 34 30 3a 35 38 2b 30 32 3a 30 30 22 09 70 61 74 68 22 4c 2f 6f 6c 64 76 61 | -18T15:40:58+02:00".path"L/oldva |
4c20 | 72 2f 73 72 63 2f 6c 65 61 70 2f 6c 65 61 70 5f 77 65 62 5f 75 73 65 72 73 2f 61 70 70 2f 61 73 | r/src/leap/leap_web_users/app/as |
4c40 | 73 65 74 73 2f 6a 61 76 61 73 63 72 69 70 74 73 2f 73 72 70 2f 6c 69 62 2f 6a 73 62 6e 32 2e 6a | sets/javascripts/srp/lib/jsbn2.j |
4c60 | 73 22 0b 64 69 67 65 73 74 22 25 61 37 30 36 39 30 36 31 66 30 66 31 31 63 61 39 37 30 32 65 66 | s".digest"%a7069061f0f11ca9702ef |
4c80 | 37 36 62 34 38 34 65 31 39 38 39 22 13 72 65 71 75 69 72 65 64 5f 70 61 74 68 73 5b 06 22 4c 2f | 76b484e1989".required_paths[."L/ |
4ca0 | 6f 6c 64 76 61 72 2f 73 72 63 2f 6c 65 61 70 2f 6c 65 61 70 5f 77 65 62 5f 75 73 65 72 73 2f 61 | oldvar/src/leap/leap_web_users/a |
4cc0 | 70 70 2f 61 73 73 65 74 73 2f 6a 61 76 61 73 63 72 69 70 74 73 2f 73 72 70 2f 6c 69 62 2f 6a 73 | pp/assets/javascripts/srp/lib/js |
4ce0 | 62 6e 32 2e 6a 73 22 0a 6d 74 69 6d 65 22 1e 32 30 31 32 2d 30 39 2d 31 38 54 31 35 3a 34 30 3a | bn2.js".mtime".2012-09-18T15:40: |
4d00 | 35 38 2b 30 32 3a 30 30 22 11 6c 6f 67 69 63 61 6c 5f 70 61 74 68 22 15 73 72 70 2f 6c 69 62 2f | 58+02:00".logical_path".srp/lib/ |
4d20 | 6a 73 62 6e 32 2e 6a 73 22 0a 63 6c 61 73 73 22 13 50 72 6f 63 65 73 73 65 64 41 73 73 65 74 22 | jsbn2.js".class".ProcessedAsset" |
4d40 | 11 63 6f 6e 74 65 6e 74 5f 74 79 70 65 22 1b 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 61 76 61 73 | .content_type".application/javas |
4d60 | 63 72 69 70 74 22 0b 64 69 67 65 73 74 22 25 61 36 36 61 38 61 31 34 39 33 62 35 35 34 30 65 35 | cript".digest"%a66a8a1493b5540e5 |
4d80 | 38 32 61 65 34 36 62 61 63 33 35 30 32 34 31 22 0d 70 61 74 68 6e 61 6d 65 22 4c 2f 6f 6c 64 76 | 82ae46bac350241".pathname"L/oldv |
4da0 | 61 72 2f 73 72 63 2f 6c 65 61 70 2f 6c 65 61 70 5f 77 65 62 5f 75 73 65 72 73 2f 61 70 70 2f 61 | ar/src/leap/leap_web_users/app/a |
4dc0 | 73 73 65 74 73 2f 6a 61 76 61 73 63 72 69 70 74 73 2f 73 72 70 2f 6c 69 62 2f 6a 73 62 6e 32 2e | ssets/javascripts/srp/lib/jsbn2. |
4de0 | 6a 73 3a 10 40 65 78 70 69 72 65 73 5f 69 6e 30 3a 10 40 63 6f 6d 70 72 65 73 73 65 64 46 | js:.@expires_in0:.@compressedF |