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 1a 31 33 34 37 39 37 35 38 38 35 2e 37 30 33 36 30 | .:.@created_atf.1347975885.70360 |
0040 | 30 39 00 07 cc 3a 0b 40 76 61 6c 75 65 22 02 ce 42 04 08 7b 11 22 16 64 65 70 65 6e 64 65 6e 63 | 09...:.@value"..B..{.".dependenc |
0060 | 79 5f 64 69 67 65 73 74 22 25 36 64 35 65 35 62 34 61 33 64 31 31 31 63 34 63 35 61 65 38 61 36 | y_digest"%6d5e5b4a3d111c4c5ae8a6 |
0080 | 39 37 39 32 65 36 66 64 64 36 22 0b 6c 65 6e 67 74 68 69 02 4d 40 22 0b 73 6f 75 72 63 65 22 02 | 9792e6fdd6".lengthi.M@".source". |
00a0 | 4d 40 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 | M@/*..*.Copyright.(c).2003-2005. |
00c0 | 20 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 | .Tom.Wu..*.All.Rights.Reserved.. |
00e0 | 20 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 | .*..*.Permission.is.hereby.grant |
0100 | 65 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 | ed,.free.of.charge,.to.any.perso |
0120 | 6e 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 | n.obtaining..*.a.copy.of.this.so |
0140 | 66 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 | ftware.and.associated.documentat |
0160 | 69 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 | ion.files.(the..*."Software"),.t |
0180 | 6f 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 | o.deal.in.the.Software.without.r |
01a0 | 65 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 | estriction,.including..*.without |
01c0 | 20 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 | .limitation.the.rights.to.use,.c |
01e0 | 6f 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 | opy,.modify,.merge,.publish,..*. |
0200 | 64 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 | distribute,.sublicense,.and/or.s |
0220 | 65 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 | ell.copies.of.the.Software,.and. |
0240 | 74 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 | to..*.permit.persons.to.whom.the |
0260 | 20 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 | .Software.is.furnished.to.do.so, |
0280 | 20 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 | .subject.to..*.the.following.con |
02a0 | 64 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 | ditions:..*..*.The.above.copyrig |
02c0 | 68 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 | ht.notice.and.this.permission.no |
02e0 | 74 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 | tice.shall.be..*.included.in.all |
0300 | 20 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 | .copies.or.substantial.portions. |
0320 | 6f 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 | of.the.Software...*..*.THE.SOFTW |
0340 | 41 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 | ARE.IS.PROVIDED."AS-IS".AND.WITH |
0360 | 4f 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 | OUT.WARRANTY.OF.ANY.KIND,...*.EX |
0380 | 50 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 | PRESS,.IMPLIED.OR.OTHERWISE,.INC |
03a0 | 4c 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 | LUDING.WITHOUT.LIMITATION,.ANY.. |
03c0 | 20 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 | .*.WARRANTY.OF.MERCHANTABILITY.O |
03e0 | 52 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 | R.FITNESS.FOR.A.PARTICULAR.PURPO |
0400 | 53 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 | SE.....*..*.IN.NO.EVENT.SHALL.TO |
0420 | 4d 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 | M.WU.BE.LIABLE.FOR.ANY.SPECIAL,. |
0440 | 49 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 | INCIDENTAL,..*.INDIRECT.OR.CONSE |
0460 | 51 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 | QUENTIAL.DAMAGES.OF.ANY.KIND,.OR |
0480 | 20 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 | .ANY.DAMAGES.WHATSOEVER..*.RESUL |
04a0 | 54 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 | TING.FROM.LOSS.OF.USE,.DATA.OR.P |
04c0 | 52 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 | ROFITS,.WHETHER.OR.NOT.ADVISED.O |
04e0 | 46 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 | F..*.THE.POSSIBILITY.OF.DAMAGE,. |
0500 | 41 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 | AND.ON.ANY.THEORY.OF.LIABILITY,. |
0520 | 41 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 | ARISING.OUT..*.OF.OR.IN.CONNECTI |
0540 | 4f 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 | ON.WITH.THE.USE.OR.PERFORMANCE.O |
0560 | 46 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 | F.THIS.SOFTWARE...*..*.In.additi |
0580 | 6f 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 | on,.the.following.condition.appl |
05a0 | 69 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 | ies:..*..*.All.redistributions.m |
05c0 | 75 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 | ust.retain.an.intact.copy.of.thi |
05e0 | 73 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 | s.copyright.notice..*.and.discla |
0600 | 69 6d 65 72 2e 0a 20 2a 2f 0a 0a 2f 2f 20 42 61 73 69 63 20 4a 61 76 61 53 63 72 69 70 74 20 42 | imer...*/..//.Basic.JavaScript.B |
0620 | 4e 20 6c 69 62 72 61 72 79 20 2d 20 73 75 62 73 65 74 20 75 73 65 66 75 6c 20 66 6f 72 20 52 53 | N.library.-.subset.useful.for.RS |
0640 | 41 20 65 6e 63 72 79 70 74 69 6f 6e 2e 0a 0a 2f 2f 20 42 69 74 73 20 70 65 72 20 64 69 67 69 74 | A.encryption...//.Bits.per.digit |
0660 | 0a 76 61 72 20 64 62 69 74 73 3b 0a 0a 2f 2f 20 4a 61 76 61 53 63 72 69 70 74 20 65 6e 67 69 6e | .var.dbits;..//.JavaScript.engin |
0680 | 65 20 61 6e 61 6c 79 73 69 73 0a 76 61 72 20 63 61 6e 61 72 79 20 3d 20 30 78 64 65 61 64 62 65 | e.analysis.var.canary.=.0xdeadbe |
06a0 | 65 66 63 61 66 65 3b 0a 76 61 72 20 6a 5f 6c 6d 20 3d 20 28 28 63 61 6e 61 72 79 26 30 78 66 66 | efcafe;.var.j_lm.=.((canary&0xff |
06c0 | 66 66 66 66 29 3d 3d 30 78 65 66 63 61 66 65 29 3b 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 43 | ffff)==0xefcafe);..//.(public).C |
06e0 | 6f 6e 73 74 72 75 63 74 6f 72 0a 66 75 6e 63 74 69 6f 6e 20 42 69 67 49 6e 74 65 67 65 72 28 61 | onstructor.function.BigInteger(a |
0700 | 2c 62 2c 63 29 20 7b 0a 20 20 69 66 28 61 20 21 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 69 66 28 22 | ,b,c).{...if(a.!=.null).....if(" |
0720 | 6e 75 6d 62 65 72 22 20 3d 3d 20 74 79 70 65 6f 66 20 61 29 20 74 68 69 73 2e 66 72 6f 6d 4e 75 | number".==.typeof.a).this.fromNu |
0740 | 6d 62 65 72 28 61 2c 62 2c 63 29 3b 0a 20 20 20 20 65 6c 73 65 20 69 66 28 62 20 3d 3d 20 6e 75 | mber(a,b,c);.....else.if(b.==.nu |
0760 | 6c 6c 20 26 26 20 22 73 74 72 69 6e 67 22 20 21 3d 20 74 79 70 65 6f 66 20 61 29 20 74 68 69 73 | ll.&&."string".!=.typeof.a).this |
0780 | 2e 66 72 6f 6d 53 74 72 69 6e 67 28 61 2c 32 35 36 29 3b 0a 20 20 20 20 65 6c 73 65 20 74 68 69 | .fromString(a,256);.....else.thi |
07a0 | 73 2e 66 72 6f 6d 53 74 72 69 6e 67 28 61 2c 62 29 3b 0a 7d 0a 0a 2f 2f 20 72 65 74 75 72 6e 20 | s.fromString(a,b);.}..//.return. |
07c0 | 6e 65 77 2c 20 75 6e 73 65 74 20 42 69 67 49 6e 74 65 67 65 72 0a 66 75 6e 63 74 69 6f 6e 20 6e | new,.unset.BigInteger.function.n |
07e0 | 62 69 28 29 20 7b 20 72 65 74 75 72 6e 20 6e 65 77 20 42 69 67 49 6e 74 65 67 65 72 28 6e 75 6c | bi().{.return.new.BigInteger(nul |
0800 | 6c 29 3b 20 7d 0a 0a 2f 2f 20 61 6d 3a 20 43 6f 6d 70 75 74 65 20 77 5f 6a 20 2b 3d 20 28 78 2a | l);.}..//.am:.Compute.w_j.+=.(x* |
0820 | 74 68 69 73 5f 69 29 2c 20 70 72 6f 70 61 67 61 74 65 20 63 61 72 72 69 65 73 2c 0a 2f 2f 20 63 | this_i),.propagate.carries,.//.c |
0840 | 20 69 73 20 69 6e 69 74 69 61 6c 20 63 61 72 72 79 2c 20 72 65 74 75 72 6e 73 20 66 69 6e 61 6c | .is.initial.carry,.returns.final |
0860 | 20 63 61 72 72 79 2e 0a 2f 2f 20 63 20 3c 20 33 2a 64 76 61 6c 75 65 2c 20 78 20 3c 20 32 2a 64 | .carry..//.c.<.3*dvalue,.x.<.2*d |
0880 | 76 61 6c 75 65 2c 20 74 68 69 73 5f 69 20 3c 20 64 76 61 6c 75 65 0a 2f 2f 20 57 65 20 6e 65 65 | value,.this_i.<.dvalue.//.We.nee |
08a0 | 64 20 74 6f 20 73 65 6c 65 63 74 20 74 68 65 20 66 61 73 74 65 73 74 20 6f 6e 65 20 74 68 61 74 | d.to.select.the.fastest.one.that |
08c0 | 20 77 6f 72 6b 73 20 69 6e 20 74 68 69 73 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2e 0a 0a 2f 2f 20 | .works.in.this.environment...//. |
08e0 | 61 6d 31 3a 20 75 73 65 20 61 20 73 69 6e 67 6c 65 20 6d 75 6c 74 20 61 6e 64 20 64 69 76 69 64 | am1:.use.a.single.mult.and.divid |
0900 | 65 20 74 6f 20 67 65 74 20 74 68 65 20 68 69 67 68 20 62 69 74 73 2c 0a 2f 2f 20 6d 61 78 20 64 | e.to.get.the.high.bits,.//.max.d |
0920 | 69 67 69 74 20 62 69 74 73 20 73 68 6f 75 6c 64 20 62 65 20 32 36 20 62 65 63 61 75 73 65 0a 2f | igit.bits.should.be.26.because./ |
0940 | 2f 20 6d 61 78 20 69 6e 74 65 72 6e 61 6c 20 76 61 6c 75 65 20 3d 20 32 2a 64 76 61 6c 75 65 5e | /.max.internal.value.=.2*dvalue^ |
0960 | 32 2d 32 2a 64 76 61 6c 75 65 20 28 3c 20 32 5e 35 33 29 0a 66 75 6e 63 74 69 6f 6e 20 61 6d 31 | 2-2*dvalue.(<.2^53).function.am1 |
0980 | 28 69 2c 78 2c 77 2c 6a 2c 63 2c 6e 29 20 7b 0a 20 20 77 68 69 6c 65 28 2d 2d 6e 20 3e 3d 20 30 | (i,x,w,j,c,n).{...while(--n.>=.0 |
09a0 | 29 20 7b 0a 20 20 20 20 76 61 72 20 76 20 3d 20 78 2a 74 68 69 73 5b 69 2b 2b 5d 2b 77 5b 6a 5d | ).{.....var.v.=.x*this[i++]+w[j] |
09c0 | 2b 63 3b 0a 20 20 20 20 63 20 3d 20 4d 61 74 68 2e 66 6c 6f 6f 72 28 76 2f 30 78 34 30 30 30 30 | +c;.....c.=.Math.floor(v/0x40000 |
09e0 | 30 30 29 3b 0a 20 20 20 20 77 5b 6a 2b 2b 5d 20 3d 20 76 26 30 78 33 66 66 66 66 66 66 3b 0a 20 | 00);.....w[j++].=.v&0x3ffffff;.. |
0a00 | 20 7d 0a 20 20 72 65 74 75 72 6e 20 63 3b 0a 7d 0a 2f 2f 20 61 6d 32 20 61 76 6f 69 64 73 20 61 | .}...return.c;.}.//.am2.avoids.a |
0a20 | 20 62 69 67 20 6d 75 6c 74 2d 61 6e 64 2d 65 78 74 72 61 63 74 20 63 6f 6d 70 6c 65 74 65 6c 79 | .big.mult-and-extract.completely |
0a40 | 2e 0a 2f 2f 20 4d 61 78 20 64 69 67 69 74 20 62 69 74 73 20 73 68 6f 75 6c 64 20 62 65 20 3c 3d | ..//.Max.digit.bits.should.be.<= |
0a60 | 20 33 30 20 62 65 63 61 75 73 65 20 77 65 20 64 6f 20 62 69 74 77 69 73 65 20 6f 70 73 0a 2f 2f | .30.because.we.do.bitwise.ops.// |
0a80 | 20 6f 6e 20 76 61 6c 75 65 73 20 75 70 20 74 6f 20 32 2a 68 64 76 61 6c 75 65 5e 32 2d 68 64 76 | .on.values.up.to.2*hdvalue^2-hdv |
0aa0 | 61 6c 75 65 2d 31 20 28 3c 20 32 5e 33 31 29 0a 66 75 6e 63 74 69 6f 6e 20 61 6d 32 28 69 2c 78 | alue-1.(<.2^31).function.am2(i,x |
0ac0 | 2c 77 2c 6a 2c 63 2c 6e 29 20 7b 0a 20 20 76 61 72 20 78 6c 20 3d 20 78 26 30 78 37 66 66 66 2c | ,w,j,c,n).{...var.xl.=.x&0x7fff, |
0ae0 | 20 78 68 20 3d 20 78 3e 3e 31 35 3b 0a 20 20 77 68 69 6c 65 28 2d 2d 6e 20 3e 3d 20 30 29 20 7b | .xh.=.x>>15;...while(--n.>=.0).{ |
0b00 | 0a 20 20 20 20 76 61 72 20 6c 20 3d 20 74 68 69 73 5b 69 5d 26 30 78 37 66 66 66 3b 0a 20 20 20 | .....var.l.=.this[i]&0x7fff;.... |
0b20 | 20 76 61 72 20 68 20 3d 20 74 68 69 73 5b 69 2b 2b 5d 3e 3e 31 35 3b 0a 20 20 20 20 76 61 72 20 | .var.h.=.this[i++]>>15;.....var. |
0b40 | 6d 20 3d 20 78 68 2a 6c 2b 68 2a 78 6c 3b 0a 20 20 20 20 6c 20 3d 20 78 6c 2a 6c 2b 28 28 6d 26 | m.=.xh*l+h*xl;.....l.=.xl*l+((m& |
0b60 | 30 78 37 66 66 66 29 3c 3c 31 35 29 2b 77 5b 6a 5d 2b 28 63 26 30 78 33 66 66 66 66 66 66 66 29 | 0x7fff)<<15)+w[j]+(c&0x3fffffff) |
0b80 | 3b 0a 20 20 20 20 63 20 3d 20 28 6c 3e 3e 3e 33 30 29 2b 28 6d 3e 3e 3e 31 35 29 2b 78 68 2a 68 | ;.....c.=.(l>>>30)+(m>>>15)+xh*h |
0ba0 | 2b 28 63 3e 3e 3e 33 30 29 3b 0a 20 20 20 20 77 5b 6a 2b 2b 5d 20 3d 20 6c 26 30 78 33 66 66 66 | +(c>>>30);.....w[j++].=.l&0x3fff |
0bc0 | 66 66 66 66 3b 0a 20 20 7d 0a 20 20 72 65 74 75 72 6e 20 63 3b 0a 7d 0a 2f 2f 20 41 6c 74 65 72 | ffff;...}...return.c;.}.//.Alter |
0be0 | 6e 61 74 65 6c 79 2c 20 73 65 74 20 6d 61 78 20 64 69 67 69 74 20 62 69 74 73 20 74 6f 20 32 38 | nately,.set.max.digit.bits.to.28 |
0c00 | 20 73 69 6e 63 65 20 73 6f 6d 65 0a 2f 2f 20 62 72 6f 77 73 65 72 73 20 73 6c 6f 77 20 64 6f 77 | .since.some.//.browsers.slow.dow |
0c20 | 6e 20 77 68 65 6e 20 64 65 61 6c 69 6e 67 20 77 69 74 68 20 33 32 2d 62 69 74 20 6e 75 6d 62 65 | n.when.dealing.with.32-bit.numbe |
0c40 | 72 73 2e 0a 66 75 6e 63 74 69 6f 6e 20 61 6d 33 28 69 2c 78 2c 77 2c 6a 2c 63 2c 6e 29 20 7b 0a | rs..function.am3(i,x,w,j,c,n).{. |
0c60 | 20 20 76 61 72 20 78 6c 20 3d 20 78 26 30 78 33 66 66 66 2c 20 78 68 20 3d 20 78 3e 3e 31 34 3b | ..var.xl.=.x&0x3fff,.xh.=.x>>14; |
0c80 | 0a 20 20 77 68 69 6c 65 28 2d 2d 6e 20 3e 3d 20 30 29 20 7b 0a 20 20 20 20 76 61 72 20 6c 20 3d | ...while(--n.>=.0).{.....var.l.= |
0ca0 | 20 74 68 69 73 5b 69 5d 26 30 78 33 66 66 66 3b 0a 20 20 20 20 76 61 72 20 68 20 3d 20 74 68 69 | .this[i]&0x3fff;.....var.h.=.thi |
0cc0 | 73 5b 69 2b 2b 5d 3e 3e 31 34 3b 0a 20 20 20 20 76 61 72 20 6d 20 3d 20 78 68 2a 6c 2b 68 2a 78 | s[i++]>>14;.....var.m.=.xh*l+h*x |
0ce0 | 6c 3b 0a 20 20 20 20 6c 20 3d 20 78 6c 2a 6c 2b 28 28 6d 26 30 78 33 66 66 66 29 3c 3c 31 34 29 | l;.....l.=.xl*l+((m&0x3fff)<<14) |
0d00 | 2b 77 5b 6a 5d 2b 63 3b 0a 20 20 20 20 63 20 3d 20 28 6c 3e 3e 32 38 29 2b 28 6d 3e 3e 31 34 29 | +w[j]+c;.....c.=.(l>>28)+(m>>14) |
0d20 | 2b 78 68 2a 68 3b 0a 20 20 20 20 77 5b 6a 2b 2b 5d 20 3d 20 6c 26 30 78 66 66 66 66 66 66 66 3b | +xh*h;.....w[j++].=.l&0xfffffff; |
0d40 | 0a 20 20 7d 0a 20 20 72 65 74 75 72 6e 20 63 3b 0a 7d 0a 69 66 28 6a 5f 6c 6d 20 26 26 20 28 6e | ...}...return.c;.}.if(j_lm.&&.(n |
0d60 | 61 76 69 67 61 74 6f 72 2e 61 70 70 4e 61 6d 65 20 3d 3d 20 22 4d 69 63 72 6f 73 6f 66 74 20 49 | avigator.appName.==."Microsoft.I |
0d80 | 6e 74 65 72 6e 65 74 20 45 78 70 6c 6f 72 65 72 22 29 29 20 7b 0a 20 20 42 69 67 49 6e 74 65 67 | nternet.Explorer")).{...BigInteg |
0da0 | 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 61 6d 20 3d 20 61 6d 32 3b 0a 20 20 64 62 69 74 73 20 3d | er.prototype.am.=.am2;...dbits.= |
0dc0 | 20 33 30 3b 0a 7d 0a 65 6c 73 65 20 69 66 28 6a 5f 6c 6d 20 26 26 20 28 6e 61 76 69 67 61 74 6f | .30;.}.else.if(j_lm.&&.(navigato |
0de0 | 72 2e 61 70 70 4e 61 6d 65 20 21 3d 20 22 4e 65 74 73 63 61 70 65 22 29 29 20 7b 0a 20 20 42 69 | r.appName.!=."Netscape")).{...Bi |
0e00 | 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 61 6d 20 3d 20 61 6d 31 3b 0a 20 20 64 | gInteger.prototype.am.=.am1;...d |
0e20 | 62 69 74 73 20 3d 20 32 36 3b 0a 7d 0a 65 6c 73 65 20 7b 20 2f 2f 20 4d 6f 7a 69 6c 6c 61 2f 4e | bits.=.26;.}.else.{.//.Mozilla/N |
0e40 | 65 74 73 63 61 70 65 20 73 65 65 6d 73 20 74 6f 20 70 72 65 66 65 72 20 61 6d 33 0a 20 20 42 69 | etscape.seems.to.prefer.am3...Bi |
0e60 | 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 61 6d 20 3d 20 61 6d 33 3b 0a 20 20 64 | gInteger.prototype.am.=.am3;...d |
0e80 | 62 69 74 73 20 3d 20 32 38 3b 0a 7d 0a 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 | bits.=.28;.}..BigInteger.prototy |
0ea0 | 70 65 2e 44 42 20 3d 20 64 62 69 74 73 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 | pe.DB.=.dbits;.BigInteger.protot |
0ec0 | 79 70 65 2e 44 4d 20 3d 20 28 28 31 3c 3c 64 62 69 74 73 29 2d 31 29 3b 0a 42 69 67 49 6e 74 65 | ype.DM.=.((1<<dbits)-1);.BigInte |
0ee0 | 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 44 56 20 3d 20 28 31 3c 3c 64 62 69 74 73 29 3b 0a 0a | ger.prototype.DV.=.(1<<dbits);.. |
0f00 | 76 61 72 20 42 49 5f 46 50 20 3d 20 35 32 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f | var.BI_FP.=.52;.BigInteger.proto |
0f20 | 74 79 70 65 2e 46 56 20 3d 20 4d 61 74 68 2e 70 6f 77 28 32 2c 42 49 5f 46 50 29 3b 0a 42 69 67 | type.FV.=.Math.pow(2,BI_FP);.Big |
0f40 | 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 46 31 20 3d 20 42 49 5f 46 50 2d 64 62 69 | Integer.prototype.F1.=.BI_FP-dbi |
0f60 | 74 73 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 46 32 20 3d 20 32 2a | ts;.BigInteger.prototype.F2.=.2* |
0f80 | 64 62 69 74 73 2d 42 49 5f 46 50 3b 0a 0a 2f 2f 20 44 69 67 69 74 20 63 6f 6e 76 65 72 73 69 6f | dbits-BI_FP;..//.Digit.conversio |
0fa0 | 6e 73 0a 76 61 72 20 42 49 5f 52 4d 20 3d 20 22 30 31 32 33 34 35 36 37 38 39 61 62 63 64 65 66 | ns.var.BI_RM.=."0123456789abcdef |
0fc0 | 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 22 3b 0a 76 61 72 20 42 49 5f 52 43 | ghijklmnopqrstuvwxyz";.var.BI_RC |
0fe0 | 20 3d 20 6e 65 77 20 41 72 72 61 79 28 29 3b 0a 76 61 72 20 72 72 2c 76 76 3b 0a 72 72 20 3d 20 | .=.new.Array();.var.rr,vv;.rr.=. |
1000 | 22 30 22 2e 63 68 61 72 43 6f 64 65 41 74 28 30 29 3b 0a 66 6f 72 28 76 76 20 3d 20 30 3b 20 76 | "0".charCodeAt(0);.for(vv.=.0;.v |
1020 | 76 20 3c 3d 20 39 3b 20 2b 2b 76 76 29 20 42 49 5f 52 43 5b 72 72 2b 2b 5d 20 3d 20 76 76 3b 0a | v.<=.9;.++vv).BI_RC[rr++].=.vv;. |
1040 | 72 72 20 3d 20 22 61 22 2e 63 68 61 72 43 6f 64 65 41 74 28 30 29 3b 0a 66 6f 72 28 76 76 20 3d | rr.=."a".charCodeAt(0);.for(vv.= |
1060 | 20 31 30 3b 20 76 76 20 3c 20 33 36 3b 20 2b 2b 76 76 29 20 42 49 5f 52 43 5b 72 72 2b 2b 5d 20 | .10;.vv.<.36;.++vv).BI_RC[rr++]. |
1080 | 3d 20 76 76 3b 0a 72 72 20 3d 20 22 41 22 2e 63 68 61 72 43 6f 64 65 41 74 28 30 29 3b 0a 66 6f | =.vv;.rr.=."A".charCodeAt(0);.fo |
10a0 | 72 28 76 76 20 3d 20 31 30 3b 20 76 76 20 3c 20 33 36 3b 20 2b 2b 76 76 29 20 42 49 5f 52 43 5b | r(vv.=.10;.vv.<.36;.++vv).BI_RC[ |
10c0 | 72 72 2b 2b 5d 20 3d 20 76 76 3b 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 6e 74 32 63 68 61 72 28 6e | rr++].=.vv;..function.int2char(n |
10e0 | 29 20 7b 20 72 65 74 75 72 6e 20 42 49 5f 52 4d 2e 63 68 61 72 41 74 28 6e 29 3b 20 7d 0a 66 75 | ).{.return.BI_RM.charAt(n);.}.fu |
1100 | 6e 63 74 69 6f 6e 20 69 6e 74 41 74 28 73 2c 69 29 20 7b 0a 20 20 76 61 72 20 63 20 3d 20 42 49 | nction.intAt(s,i).{...var.c.=.BI |
1120 | 5f 52 43 5b 73 2e 63 68 61 72 43 6f 64 65 41 74 28 69 29 5d 3b 0a 20 20 72 65 74 75 72 6e 20 28 | _RC[s.charCodeAt(i)];...return.( |
1140 | 63 3d 3d 6e 75 6c 6c 29 3f 2d 31 3a 63 3b 0a 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 | c==null)?-1:c;.}..//.(protected) |
1160 | 20 63 6f 70 79 20 74 68 69 73 20 74 6f 20 72 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 43 6f 70 79 | .copy.this.to.r.function.bnpCopy |
1180 | 54 6f 28 72 29 20 7b 0a 20 20 66 6f 72 28 76 61 72 20 69 20 3d 20 74 68 69 73 2e 74 2d 31 3b 20 | To(r).{...for(var.i.=.this.t-1;. |
11a0 | 69 20 3e 3d 20 30 3b 20 2d 2d 69 29 20 72 5b 69 5d 20 3d 20 74 68 69 73 5b 69 5d 3b 0a 20 20 72 | i.>=.0;.--i).r[i].=.this[i];...r |
11c0 | 2e 74 20 3d 20 74 68 69 73 2e 74 3b 0a 20 20 72 2e 73 20 3d 20 74 68 69 73 2e 73 3b 0a 7d 0a 0a | .t.=.this.t;...r.s.=.this.s;.}.. |
11e0 | 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 73 65 74 20 66 72 6f 6d 20 69 6e 74 65 67 65 72 20 | //.(protected).set.from.integer. |
1200 | 76 61 6c 75 65 20 78 2c 20 2d 44 56 20 3c 3d 20 78 20 3c 20 44 56 0a 66 75 6e 63 74 69 6f 6e 20 | value.x,.-DV.<=.x.<.DV.function. |
1220 | 62 6e 70 46 72 6f 6d 49 6e 74 28 78 29 20 7b 0a 20 20 74 68 69 73 2e 74 20 3d 20 31 3b 0a 20 20 | bnpFromInt(x).{...this.t.=.1;... |
1240 | 74 68 69 73 2e 73 20 3d 20 28 78 3c 30 29 3f 2d 31 3a 30 3b 0a 20 20 69 66 28 78 20 3e 20 30 29 | this.s.=.(x<0)?-1:0;...if(x.>.0) |
1260 | 20 74 68 69 73 5b 30 5d 20 3d 20 78 3b 0a 20 20 65 6c 73 65 20 69 66 28 78 20 3c 20 2d 31 29 20 | .this[0].=.x;...else.if(x.<.-1). |
1280 | 74 68 69 73 5b 30 5d 20 3d 20 78 2b 44 56 3b 0a 20 20 65 6c 73 65 20 74 68 69 73 2e 74 20 3d 20 | this[0].=.x+DV;...else.this.t.=. |
12a0 | 30 3b 0a 7d 0a 0a 2f 2f 20 72 65 74 75 72 6e 20 62 69 67 69 6e 74 20 69 6e 69 74 69 61 6c 69 7a | 0;.}..//.return.bigint.initializ |
12c0 | 65 64 20 74 6f 20 76 61 6c 75 65 0a 66 75 6e 63 74 69 6f 6e 20 6e 62 76 28 69 29 20 7b 20 76 61 | ed.to.value.function.nbv(i).{.va |
12e0 | 72 20 72 20 3d 20 6e 62 69 28 29 3b 20 72 2e 66 72 6f 6d 49 6e 74 28 69 29 3b 20 72 65 74 75 72 | r.r.=.nbi();.r.fromInt(i);.retur |
1300 | 6e 20 72 3b 20 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 73 65 74 20 66 72 6f 6d 20 | n.r;.}..//.(protected).set.from. |
1320 | 73 74 72 69 6e 67 20 61 6e 64 20 72 61 64 69 78 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 46 72 6f | string.and.radix.function.bnpFro |
1340 | 6d 53 74 72 69 6e 67 28 73 2c 62 29 20 7b 0a 20 20 76 61 72 20 6b 3b 0a 20 20 69 66 28 62 20 3d | mString(s,b).{...var.k;...if(b.= |
1360 | 3d 20 31 36 29 20 6b 20 3d 20 34 3b 0a 20 20 65 6c 73 65 20 69 66 28 62 20 3d 3d 20 38 29 20 6b | =.16).k.=.4;...else.if(b.==.8).k |
1380 | 20 3d 20 33 3b 0a 20 20 65 6c 73 65 20 69 66 28 62 20 3d 3d 20 32 35 36 29 20 6b 20 3d 20 38 3b | .=.3;...else.if(b.==.256).k.=.8; |
13a0 | 20 2f 2f 20 62 79 74 65 20 61 72 72 61 79 0a 20 20 65 6c 73 65 20 69 66 28 62 20 3d 3d 20 32 29 | .//.byte.array...else.if(b.==.2) |
13c0 | 20 6b 20 3d 20 31 3b 0a 20 20 65 6c 73 65 20 69 66 28 62 20 3d 3d 20 33 32 29 20 6b 20 3d 20 35 | .k.=.1;...else.if(b.==.32).k.=.5 |
13e0 | 3b 0a 20 20 65 6c 73 65 20 69 66 28 62 20 3d 3d 20 34 29 20 6b 20 3d 20 32 3b 0a 20 20 65 6c 73 | ;...else.if(b.==.4).k.=.2;...els |
1400 | 65 20 7b 20 74 68 69 73 2e 66 72 6f 6d 52 61 64 69 78 28 73 2c 62 29 3b 20 72 65 74 75 72 6e 3b | e.{.this.fromRadix(s,b);.return; |
1420 | 20 7d 0a 20 20 74 68 69 73 2e 74 20 3d 20 30 3b 0a 20 20 74 68 69 73 2e 73 20 3d 20 30 3b 0a 20 | .}...this.t.=.0;...this.s.=.0;.. |
1440 | 20 76 61 72 20 69 20 3d 20 73 2e 6c 65 6e 67 74 68 2c 20 6d 69 20 3d 20 66 61 6c 73 65 2c 20 73 | .var.i.=.s.length,.mi.=.false,.s |
1460 | 68 20 3d 20 30 3b 0a 20 20 77 68 69 6c 65 28 2d 2d 69 20 3e 3d 20 30 29 20 7b 0a 20 20 20 20 76 | h.=.0;...while(--i.>=.0).{.....v |
1480 | 61 72 20 78 20 3d 20 28 6b 3d 3d 38 29 3f 73 5b 69 5d 26 30 78 66 66 3a 69 6e 74 41 74 28 73 2c | ar.x.=.(k==8)?s[i]&0xff:intAt(s, |
14a0 | 69 29 3b 0a 20 20 20 20 69 66 28 78 20 3c 20 30 29 20 7b 0a 20 20 20 20 20 20 69 66 28 73 2e 63 | i);.....if(x.<.0).{.......if(s.c |
14c0 | 68 61 72 41 74 28 69 29 20 3d 3d 20 22 2d 22 29 20 6d 69 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 | harAt(i).==."-").mi.=.true;..... |
14e0 | 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 6d 69 20 3d 20 66 61 6c 73 65 | ..continue;.....}.....mi.=.false |
1500 | 3b 0a 20 20 20 20 69 66 28 73 68 20 3d 3d 20 30 29 0a 20 20 20 20 20 20 74 68 69 73 5b 74 68 69 | ;.....if(sh.==.0).......this[thi |
1520 | 73 2e 74 2b 2b 5d 20 3d 20 78 3b 0a 20 20 20 20 65 6c 73 65 20 69 66 28 73 68 2b 6b 20 3e 20 74 | s.t++].=.x;.....else.if(sh+k.>.t |
1540 | 68 69 73 2e 44 42 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73 5b 74 68 69 73 2e 74 2d 31 5d 20 7c | his.DB).{.......this[this.t-1].| |
1560 | 3d 20 28 78 26 28 28 31 3c 3c 28 74 68 69 73 2e 44 42 2d 73 68 29 29 2d 31 29 29 3c 3c 73 68 3b | =.(x&((1<<(this.DB-sh))-1))<<sh; |
1580 | 0a 20 20 20 20 20 20 74 68 69 73 5b 74 68 69 73 2e 74 2b 2b 5d 20 3d 20 28 78 3e 3e 28 74 68 69 | .......this[this.t++].=.(x>>(thi |
15a0 | 73 2e 44 42 2d 73 68 29 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 | s.DB-sh));.....}.....else....... |
15c0 | 74 68 69 73 5b 74 68 69 73 2e 74 2d 31 5d 20 7c 3d 20 78 3c 3c 73 68 3b 0a 20 20 20 20 73 68 20 | this[this.t-1].|=.x<<sh;.....sh. |
15e0 | 2b 3d 20 6b 3b 0a 20 20 20 20 69 66 28 73 68 20 3e 3d 20 74 68 69 73 2e 44 42 29 20 73 68 20 2d | +=.k;.....if(sh.>=.this.DB).sh.- |
1600 | 3d 20 74 68 69 73 2e 44 42 3b 0a 20 20 7d 0a 20 20 69 66 28 6b 20 3d 3d 20 38 20 26 26 20 28 73 | =.this.DB;...}...if(k.==.8.&&.(s |
1620 | 5b 30 5d 26 30 78 38 30 29 20 21 3d 20 30 29 20 7b 0a 20 20 20 20 74 68 69 73 2e 73 20 3d 20 2d | [0]&0x80).!=.0).{.....this.s.=.- |
1640 | 31 3b 0a 20 20 20 20 69 66 28 73 68 20 3e 20 30 29 20 74 68 69 73 5b 74 68 69 73 2e 74 2d 31 5d | 1;.....if(sh.>.0).this[this.t-1] |
1660 | 20 7c 3d 20 28 28 31 3c 3c 28 74 68 69 73 2e 44 42 2d 73 68 29 29 2d 31 29 3c 3c 73 68 3b 0a 20 | .|=.((1<<(this.DB-sh))-1)<<sh;.. |
1680 | 20 7d 0a 20 20 74 68 69 73 2e 63 6c 61 6d 70 28 29 3b 0a 20 20 69 66 28 6d 69 29 20 42 69 67 49 | .}...this.clamp();...if(mi).BigI |
16a0 | 6e 74 65 67 65 72 2e 5a 45 52 4f 2e 73 75 62 54 6f 28 74 68 69 73 2c 74 68 69 73 29 3b 0a 7d 0a | nteger.ZERO.subTo(this,this);.}. |
16c0 | 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 63 6c 61 6d 70 20 6f 66 66 20 65 78 63 65 73 73 | .//.(protected).clamp.off.excess |
16e0 | 20 68 69 67 68 20 77 6f 72 64 73 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 43 6c 61 6d 70 28 29 20 | .high.words.function.bnpClamp(). |
1700 | 7b 0a 20 20 76 61 72 20 63 20 3d 20 74 68 69 73 2e 73 26 74 68 69 73 2e 44 4d 3b 0a 20 20 77 68 | {...var.c.=.this.s&this.DM;...wh |
1720 | 69 6c 65 28 74 68 69 73 2e 74 20 3e 20 30 20 26 26 20 74 68 69 73 5b 74 68 69 73 2e 74 2d 31 5d | ile(this.t.>.0.&&.this[this.t-1] |
1740 | 20 3d 3d 20 63 29 20 2d 2d 74 68 69 73 2e 74 3b 0a 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 | .==.c).--this.t;.}..//.(public). |
1760 | 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 69 6e 20 | return.string.representation.in. |
1780 | 67 69 76 65 6e 20 72 61 64 69 78 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 54 6f 53 74 72 69 6e 67 28 | given.radix.function.bnToString( |
17a0 | 62 29 20 7b 0a 20 20 69 66 28 74 68 69 73 2e 73 20 3c 20 30 29 20 72 65 74 75 72 6e 20 22 2d 22 | b).{...if(this.s.<.0).return."-" |
17c0 | 2b 74 68 69 73 2e 6e 65 67 61 74 65 28 29 2e 74 6f 53 74 72 69 6e 67 28 62 29 3b 0a 20 20 76 61 | +this.negate().toString(b);...va |
17e0 | 72 20 6b 3b 0a 20 20 69 66 28 62 20 3d 3d 20 31 36 29 20 6b 20 3d 20 34 3b 0a 20 20 65 6c 73 65 | r.k;...if(b.==.16).k.=.4;...else |
1800 | 20 69 66 28 62 20 3d 3d 20 38 29 20 6b 20 3d 20 33 3b 0a 20 20 65 6c 73 65 20 69 66 28 62 20 3d | .if(b.==.8).k.=.3;...else.if(b.= |
1820 | 3d 20 32 29 20 6b 20 3d 20 31 3b 0a 20 20 65 6c 73 65 20 69 66 28 62 20 3d 3d 20 33 32 29 20 6b | =.2).k.=.1;...else.if(b.==.32).k |
1840 | 20 3d 20 35 3b 0a 20 20 65 6c 73 65 20 69 66 28 62 20 3d 3d 20 34 29 20 6b 20 3d 20 32 3b 0a 20 | .=.5;...else.if(b.==.4).k.=.2;.. |
1860 | 20 65 6c 73 65 20 72 65 74 75 72 6e 20 74 68 69 73 2e 74 6f 52 61 64 69 78 28 62 29 3b 0a 20 20 | .else.return.this.toRadix(b);... |
1880 | 76 61 72 20 6b 6d 20 3d 20 28 31 3c 3c 6b 29 2d 31 2c 20 64 2c 20 6d 20 3d 20 66 61 6c 73 65 2c | var.km.=.(1<<k)-1,.d,.m.=.false, |
18a0 | 20 72 20 3d 20 22 22 2c 20 69 20 3d 20 74 68 69 73 2e 74 3b 0a 20 20 76 61 72 20 70 20 3d 20 74 | .r.=."",.i.=.this.t;...var.p.=.t |
18c0 | 68 69 73 2e 44 42 2d 28 69 2a 74 68 69 73 2e 44 42 29 25 6b 3b 0a 20 20 69 66 28 69 2d 2d 20 3e | his.DB-(i*this.DB)%k;...if(i--.> |
18e0 | 20 30 29 20 7b 0a 20 20 20 20 69 66 28 70 20 3c 20 74 68 69 73 2e 44 42 20 26 26 20 28 64 20 3d | .0).{.....if(p.<.this.DB.&&.(d.= |
1900 | 20 74 68 69 73 5b 69 5d 3e 3e 70 29 20 3e 20 30 29 20 7b 20 6d 20 3d 20 74 72 75 65 3b 20 72 20 | .this[i]>>p).>.0).{.m.=.true;.r. |
1920 | 3d 20 69 6e 74 32 63 68 61 72 28 64 29 3b 20 7d 0a 20 20 20 20 77 68 69 6c 65 28 69 20 3e 3d 20 | =.int2char(d);.}.....while(i.>=. |
1940 | 30 29 20 7b 0a 20 20 20 20 20 20 69 66 28 70 20 3c 20 6b 29 20 7b 0a 20 20 20 20 20 20 20 20 64 | 0).{.......if(p.<.k).{.........d |
1960 | 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 6b 2d 70 29 3b 0a | .=.(this[i]&((1<<p)-1))<<(k-p);. |
1980 | 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 3d 74 68 69 73 | ........d.|=.this[--i]>>(p+=this |
19a0 | 2e 44 42 2d 6b 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 | .DB-k);.......}.......else.{.... |
19c0 | 20 20 20 20 20 64 20 3d 20 28 74 68 69 73 5b 69 5d 3e 3e 28 70 2d 3d 6b 29 29 26 6b 6d 3b 0a 20 | .....d.=.(this[i]>>(p-=k))&km;.. |
19e0 | 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 74 68 69 73 2e 44 42 | .......if(p.<=.0).{.p.+=.this.DB |
1a00 | 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 28 64 20 3e 20 30 29 | ;.--i;.}.......}.......if(d.>.0) |
1a20 | 20 6d 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 69 66 28 6d 29 20 72 20 2b 3d 20 69 6e 74 32 | .m.=.true;.......if(m).r.+=.int2 |
1a40 | 63 68 61 72 28 64 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 72 65 74 75 72 6e 20 6d 3f 72 3a | char(d);.....}...}...return.m?r: |
1a60 | 22 30 22 3b 0a 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 2d 74 68 69 73 0a 66 75 6e 63 74 69 | "0";.}..//.(public).-this.functi |
1a80 | 6f 6e 20 62 6e 4e 65 67 61 74 65 28 29 20 7b 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 20 42 | on.bnNegate().{.var.r.=.nbi();.B |
1aa0 | 69 67 49 6e 74 65 67 65 72 2e 5a 45 52 4f 2e 73 75 62 54 6f 28 74 68 69 73 2c 72 29 3b 20 72 65 | igInteger.ZERO.subTo(this,r);.re |
1ac0 | 74 75 72 6e 20 72 3b 20 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 7c 74 68 69 73 7c 0a 66 75 | turn.r;.}..//.(public).|this|.fu |
1ae0 | 6e 63 74 69 6f 6e 20 62 6e 41 62 73 28 29 20 7b 20 72 65 74 75 72 6e 20 28 74 68 69 73 2e 73 3c | nction.bnAbs().{.return.(this.s< |
1b00 | 30 29 3f 74 68 69 73 2e 6e 65 67 61 74 65 28 29 3a 74 68 69 73 3b 20 7d 0a 0a 2f 2f 20 28 70 75 | 0)?this.negate():this;.}..//.(pu |
1b20 | 62 6c 69 63 29 20 72 65 74 75 72 6e 20 2b 20 69 66 20 74 68 69 73 20 3e 20 61 2c 20 2d 20 69 66 | blic).return.+.if.this.>.a,.-.if |
1b40 | 20 74 68 69 73 20 3c 20 61 2c 20 30 20 69 66 20 65 71 75 61 6c 0a 66 75 6e 63 74 69 6f 6e 20 62 | .this.<.a,.0.if.equal.function.b |
1b60 | 6e 43 6f 6d 70 61 72 65 54 6f 28 61 29 20 7b 0a 20 20 76 61 72 20 72 20 3d 20 74 68 69 73 2e 73 | nCompareTo(a).{...var.r.=.this.s |
1b80 | 2d 61 2e 73 3b 0a 20 20 69 66 28 72 20 21 3d 20 30 29 20 72 65 74 75 72 6e 20 72 3b 0a 20 20 76 | -a.s;...if(r.!=.0).return.r;...v |
1ba0 | 61 72 20 69 20 3d 20 74 68 69 73 2e 74 3b 0a 20 20 72 20 3d 20 69 2d 61 2e 74 3b 0a 20 20 69 66 | ar.i.=.this.t;...r.=.i-a.t;...if |
1bc0 | 28 72 20 21 3d 20 30 29 20 72 65 74 75 72 6e 20 72 3b 0a 20 20 77 68 69 6c 65 28 2d 2d 69 20 3e | (r.!=.0).return.r;...while(--i.> |
1be0 | 3d 20 30 29 20 69 66 28 28 72 3d 74 68 69 73 5b 69 5d 2d 61 5b 69 5d 29 20 21 3d 20 30 29 20 72 | =.0).if((r=this[i]-a[i]).!=.0).r |
1c00 | 65 74 75 72 6e 20 72 3b 0a 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 2f 2f 20 72 65 74 75 72 | eturn.r;...return.0;.}..//.retur |
1c20 | 6e 73 20 62 69 74 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 69 6e 74 65 67 65 72 20 78 0a 66 | ns.bit.length.of.the.integer.x.f |
1c40 | 75 6e 63 74 69 6f 6e 20 6e 62 69 74 73 28 78 29 20 7b 0a 20 20 76 61 72 20 72 20 3d 20 31 2c 20 | unction.nbits(x).{...var.r.=.1,. |
1c60 | 74 3b 0a 20 20 69 66 28 28 74 3d 78 3e 3e 3e 31 36 29 20 21 3d 20 30 29 20 7b 20 78 20 3d 20 74 | t;...if((t=x>>>16).!=.0).{.x.=.t |
1c80 | 3b 20 72 20 2b 3d 20 31 36 3b 20 7d 0a 20 20 69 66 28 28 74 3d 78 3e 3e 38 29 20 21 3d 20 30 29 | ;.r.+=.16;.}...if((t=x>>8).!=.0) |
1ca0 | 20 7b 20 78 20 3d 20 74 3b 20 72 20 2b 3d 20 38 3b 20 7d 0a 20 20 69 66 28 28 74 3d 78 3e 3e 34 | .{.x.=.t;.r.+=.8;.}...if((t=x>>4 |
1cc0 | 29 20 21 3d 20 30 29 20 7b 20 78 20 3d 20 74 3b 20 72 20 2b 3d 20 34 3b 20 7d 0a 20 20 69 66 28 | ).!=.0).{.x.=.t;.r.+=.4;.}...if( |
1ce0 | 28 74 3d 78 3e 3e 32 29 20 21 3d 20 30 29 20 7b 20 78 20 3d 20 74 3b 20 72 20 2b 3d 20 32 3b 20 | (t=x>>2).!=.0).{.x.=.t;.r.+=.2;. |
1d00 | 7d 0a 20 20 69 66 28 28 74 3d 78 3e 3e 31 29 20 21 3d 20 30 29 20 7b 20 78 20 3d 20 74 3b 20 72 | }...if((t=x>>1).!=.0).{.x.=.t;.r |
1d20 | 20 2b 3d 20 31 3b 20 7d 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a 2f 2f 20 28 70 75 62 6c | .+=.1;.}...return.r;.}..//.(publ |
1d40 | 69 63 29 20 72 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 69 74 73 20 69 6e | ic).return.the.number.of.bits.in |
1d60 | 20 22 74 68 69 73 22 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 42 69 74 4c 65 6e 67 74 68 28 29 20 7b | ."this".function.bnBitLength().{ |
1d80 | 0a 20 20 69 66 28 74 68 69 73 2e 74 20 3c 3d 20 30 29 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 72 | ...if(this.t.<=.0).return.0;...r |
1da0 | 65 74 75 72 6e 20 74 68 69 73 2e 44 42 2a 28 74 68 69 73 2e 74 2d 31 29 2b 6e 62 69 74 73 28 74 | eturn.this.DB*(this.t-1)+nbits(t |
1dc0 | 68 69 73 5b 74 68 69 73 2e 74 2d 31 5d 5e 28 74 68 69 73 2e 73 26 74 68 69 73 2e 44 4d 29 29 3b | his[this.t-1]^(this.s&this.DM)); |
1de0 | 0a 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 3c 3c 20 6e | .}..//.(protected).r.=.this.<<.n |
1e00 | 2a 44 42 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 44 4c 53 68 69 66 74 54 6f 28 6e 2c 72 29 20 7b | *DB.function.bnpDLShiftTo(n,r).{ |
1e20 | 0a 20 20 76 61 72 20 69 3b 0a 20 20 66 6f 72 28 69 20 3d 20 74 68 69 73 2e 74 2d 31 3b 20 69 20 | ...var.i;...for(i.=.this.t-1;.i. |
1e40 | 3e 3d 20 30 3b 20 2d 2d 69 29 20 72 5b 69 2b 6e 5d 20 3d 20 74 68 69 73 5b 69 5d 3b 0a 20 20 66 | >=.0;.--i).r[i+n].=.this[i];...f |
1e60 | 6f 72 28 69 20 3d 20 6e 2d 31 3b 20 69 20 3e 3d 20 30 3b 20 2d 2d 69 29 20 72 5b 69 5d 20 3d 20 | or(i.=.n-1;.i.>=.0;.--i).r[i].=. |
1e80 | 30 3b 0a 20 20 72 2e 74 20 3d 20 74 68 69 73 2e 74 2b 6e 3b 0a 20 20 72 2e 73 20 3d 20 74 68 69 | 0;...r.t.=.this.t+n;...r.s.=.thi |
1ea0 | 73 2e 73 3b 0a 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 | s.s;.}..//.(protected).r.=.this. |
1ec0 | 3e 3e 20 6e 2a 44 42 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 44 52 53 68 69 66 74 54 6f 28 6e 2c | >>.n*DB.function.bnpDRShiftTo(n, |
1ee0 | 72 29 20 7b 0a 20 20 66 6f 72 28 76 61 72 20 69 20 3d 20 6e 3b 20 69 20 3c 20 74 68 69 73 2e 74 | r).{...for(var.i.=.n;.i.<.this.t |
1f00 | 3b 20 2b 2b 69 29 20 72 5b 69 2d 6e 5d 20 3d 20 74 68 69 73 5b 69 5d 3b 0a 20 20 72 2e 74 20 3d | ;.++i).r[i-n].=.this[i];...r.t.= |
1f20 | 20 4d 61 74 68 2e 6d 61 78 28 74 68 69 73 2e 74 2d 6e 2c 30 29 3b 0a 20 20 72 2e 73 20 3d 20 74 | .Math.max(this.t-n,0);...r.s.=.t |
1f40 | 68 69 73 2e 73 3b 0a 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 | his.s;.}..//.(protected).r.=.thi |
1f60 | 73 20 3c 3c 20 6e 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 4c 53 68 69 66 74 54 6f 28 6e 2c 72 29 | s.<<.n.function.bnpLShiftTo(n,r) |
1f80 | 20 7b 0a 20 20 76 61 72 20 62 73 20 3d 20 6e 25 74 68 69 73 2e 44 42 3b 0a 20 20 76 61 72 20 63 | .{...var.bs.=.n%this.DB;...var.c |
1fa0 | 62 73 20 3d 20 74 68 69 73 2e 44 42 2d 62 73 3b 0a 20 20 76 61 72 20 62 6d 20 3d 20 28 31 3c 3c | bs.=.this.DB-bs;...var.bm.=.(1<< |
1fc0 | 63 62 73 29 2d 31 3b 0a 20 20 76 61 72 20 64 73 20 3d 20 4d 61 74 68 2e 66 6c 6f 6f 72 28 6e 2f | cbs)-1;...var.ds.=.Math.floor(n/ |
1fe0 | 74 68 69 73 2e 44 42 29 2c 20 63 20 3d 20 28 74 68 69 73 2e 73 3c 3c 62 73 29 26 74 68 69 73 2e | this.DB),.c.=.(this.s<<bs)&this. |
2000 | 44 4d 2c 20 69 3b 0a 20 20 66 6f 72 28 69 20 3d 20 74 68 69 73 2e 74 2d 31 3b 20 69 20 3e 3d 20 | DM,.i;...for(i.=.this.t-1;.i.>=. |
2020 | 30 3b 20 2d 2d 69 29 20 7b 0a 20 20 20 20 72 5b 69 2b 64 73 2b 31 5d 20 3d 20 28 74 68 69 73 5b | 0;.--i).{.....r[i+ds+1].=.(this[ |
2040 | 69 5d 3e 3e 63 62 73 29 7c 63 3b 0a 20 20 20 20 63 20 3d 20 28 74 68 69 73 5b 69 5d 26 62 6d 29 | i]>>cbs)|c;.....c.=.(this[i]&bm) |
2060 | 3c 3c 62 73 3b 0a 20 20 7d 0a 20 20 66 6f 72 28 69 20 3d 20 64 73 2d 31 3b 20 69 20 3e 3d 20 30 | <<bs;...}...for(i.=.ds-1;.i.>=.0 |
2080 | 3b 20 2d 2d 69 29 20 72 5b 69 5d 20 3d 20 30 3b 0a 20 20 72 5b 64 73 5d 20 3d 20 63 3b 0a 20 20 | ;.--i).r[i].=.0;...r[ds].=.c;... |
20a0 | 72 2e 74 20 3d 20 74 68 69 73 2e 74 2b 64 73 2b 31 3b 0a 20 20 72 2e 73 20 3d 20 74 68 69 73 2e | r.t.=.this.t+ds+1;...r.s.=.this. |
20c0 | 73 3b 0a 20 20 72 2e 63 6c 61 6d 70 28 29 3b 0a 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 | s;...r.clamp();.}..//.(protected |
20e0 | 29 20 72 20 3d 20 74 68 69 73 20 3e 3e 20 6e 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 52 53 68 69 | ).r.=.this.>>.n.function.bnpRShi |
2100 | 66 74 54 6f 28 6e 2c 72 29 20 7b 0a 20 20 72 2e 73 20 3d 20 74 68 69 73 2e 73 3b 0a 20 20 76 61 | ftTo(n,r).{...r.s.=.this.s;...va |
2120 | 72 20 64 73 20 3d 20 4d 61 74 68 2e 66 6c 6f 6f 72 28 6e 2f 74 68 69 73 2e 44 42 29 3b 0a 20 20 | r.ds.=.Math.floor(n/this.DB);... |
2140 | 69 66 28 64 73 20 3e 3d 20 74 68 69 73 2e 74 29 20 7b 20 72 2e 74 20 3d 20 30 3b 20 72 65 74 75 | if(ds.>=.this.t).{.r.t.=.0;.retu |
2160 | 72 6e 3b 20 7d 0a 20 20 76 61 72 20 62 73 20 3d 20 6e 25 74 68 69 73 2e 44 42 3b 0a 20 20 76 61 | rn;.}...var.bs.=.n%this.DB;...va |
2180 | 72 20 63 62 73 20 3d 20 74 68 69 73 2e 44 42 2d 62 73 3b 0a 20 20 76 61 72 20 62 6d 20 3d 20 28 | r.cbs.=.this.DB-bs;...var.bm.=.( |
21a0 | 31 3c 3c 62 73 29 2d 31 3b 0a 20 20 72 5b 30 5d 20 3d 20 74 68 69 73 5b 64 73 5d 3e 3e 62 73 3b | 1<<bs)-1;...r[0].=.this[ds]>>bs; |
21c0 | 0a 20 20 66 6f 72 28 76 61 72 20 69 20 3d 20 64 73 2b 31 3b 20 69 20 3c 20 74 68 69 73 2e 74 3b | ...for(var.i.=.ds+1;.i.<.this.t; |
21e0 | 20 2b 2b 69 29 20 7b 0a 20 20 20 20 72 5b 69 2d 64 73 2d 31 5d 20 7c 3d 20 28 74 68 69 73 5b 69 | .++i).{.....r[i-ds-1].|=.(this[i |
2200 | 5d 26 62 6d 29 3c 3c 63 62 73 3b 0a 20 20 20 20 72 5b 69 2d 64 73 5d 20 3d 20 74 68 69 73 5b 69 | ]&bm)<<cbs;.....r[i-ds].=.this[i |
2220 | 5d 3e 3e 62 73 3b 0a 20 20 7d 0a 20 20 69 66 28 62 73 20 3e 20 30 29 20 72 5b 74 68 69 73 2e 74 | ]>>bs;...}...if(bs.>.0).r[this.t |
2240 | 2d 64 73 2d 31 5d 20 7c 3d 20 28 74 68 69 73 2e 73 26 62 6d 29 3c 3c 63 62 73 3b 0a 20 20 72 2e | -ds-1].|=.(this.s&bm)<<cbs;...r. |
2260 | 74 20 3d 20 74 68 69 73 2e 74 2d 64 73 3b 0a 20 20 72 2e 63 6c 61 6d 70 28 29 3b 0a 7d 0a 0a 2f | t.=.this.t-ds;...r.clamp();.}../ |
2280 | 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 72 20 3d 20 74 68 69 73 20 2d 20 61 0a 66 75 6e 63 74 | /.(protected).r.=.this.-.a.funct |
22a0 | 69 6f 6e 20 62 6e 70 53 75 62 54 6f 28 61 2c 72 29 20 7b 0a 20 20 76 61 72 20 69 20 3d 20 30 2c | ion.bnpSubTo(a,r).{...var.i.=.0, |
22c0 | 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 69 73 2e 74 29 | .c.=.0,.m.=.Math.min(a.t,this.t) |
22e0 | 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 20 74 68 69 73 | ;...while(i.<.m).{.....c.+=.this |
2300 | 5b 69 5d 2d 61 5b 69 5d 3b 0a 20 20 20 20 72 5b 69 2b 2b 5d 20 3d 20 63 26 74 68 69 73 2e 44 4d | [i]-a[i];.....r[i++].=.c&this.DM |
2320 | 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 69 66 28 61 2e | ;.....c.>>=.this.DB;...}...if(a. |
2340 | 74 20 3c 20 74 68 69 73 2e 74 29 20 7b 0a 20 20 20 20 63 20 2d 3d 20 61 2e 73 3b 0a 20 20 20 20 | t.<.this.t).{.....c.-=.a.s;..... |
2360 | 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 20 2b 3d 20 74 | while(i.<.this.t).{.......c.+=.t |
2380 | 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 69 73 2e 44 4d | his[i];.......r[i++].=.c&this.DM |
23a0 | 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 7d 0a 20 20 20 | ;.......c.>>=.this.DB;.....}.... |
23c0 | 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 20 20 20 20 63 | .c.+=.this.s;...}...else.{.....c |
23e0 | 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 2e 74 29 20 7b | .+=.this.s;.....while(i.<.a.t).{ |
2400 | 0a 20 20 20 20 20 20 63 20 2d 3d 20 61 5b 69 5d 3b 0a 20 20 20 20 20 20 72 5b 69 2b 2b 5d 20 3d | .......c.-=.a[i];.......r[i++].= |
2420 | 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 73 2e 44 42 3b | .c&this.DM;.......c.>>=.this.DB; |
2440 | 0a 20 20 20 20 7d 0a 20 20 20 20 63 20 2d 3d 20 61 2e 73 3b 0a 20 20 7d 0a 20 20 72 2e 73 20 3d | .....}.....c.-=.a.s;...}...r.s.= |
2460 | 20 28 63 3c 30 29 3f 2d 31 3a 30 3b 0a 20 20 69 66 28 63 20 3c 20 2d 31 29 20 72 5b 69 2b 2b 5d | .(c<0)?-1:0;...if(c.<.-1).r[i++] |
2480 | 20 3d 20 74 68 69 73 2e 44 56 2b 63 3b 0a 20 20 65 6c 73 65 20 69 66 28 63 20 3e 20 30 29 20 72 | .=.this.DV+c;...else.if(c.>.0).r |
24a0 | 5b 69 2b 2b 5d 20 3d 20 63 3b 0a 20 20 72 2e 74 20 3d 20 69 3b 0a 20 20 72 2e 63 6c 61 6d 70 28 | [i++].=.c;...r.t.=.i;...r.clamp( |
24c0 | 29 3b 0a 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 2a 20 | );.}..//.(protected).r.=.this.*. |
24e0 | 61 2c 20 72 20 21 3d 20 74 68 69 73 2c 61 20 28 48 41 43 20 31 34 2e 31 32 29 0a 2f 2f 20 22 74 | a,.r.!=.this,a.(HAC.14.12).//."t |
2500 | 68 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 | his".should.be.the.larger.one.if |
2520 | 20 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 | .appropriate..function.bnpMultip |
2540 | 6c 79 54 6f 28 61 2c 72 29 20 7b 0a 20 20 76 61 72 20 78 20 3d 20 74 68 69 73 2e 61 62 73 28 29 | lyTo(a,r).{...var.x.=.this.abs() |
2560 | 2c 20 79 20 3d 20 61 2e 61 62 73 28 29 3b 0a 20 20 76 61 72 20 69 20 3d 20 78 2e 74 3b 0a 20 20 | ,.y.=.a.abs();...var.i.=.x.t;... |
2580 | 72 2e 74 20 3d 20 69 2b 79 2e 74 3b 0a 20 20 77 68 69 6c 65 28 2d 2d 69 20 3e 3d 20 30 29 20 72 | r.t.=.i+y.t;...while(--i.>=.0).r |
25a0 | 5b 69 5d 20 3d 20 30 3b 0a 20 20 66 6f 72 28 69 20 3d 20 30 3b 20 69 20 3c 20 79 2e 74 3b 20 2b | [i].=.0;...for(i.=.0;.i.<.y.t;.+ |
25c0 | 2b 69 29 20 72 5b 69 2b 78 2e 74 5d 20 3d 20 78 2e 61 6d 28 30 2c 79 5b 69 5d 2c 72 2c 69 2c 30 | +i).r[i+x.t].=.x.am(0,y[i],r,i,0 |
25e0 | 2c 78 2e 74 29 3b 0a 20 20 72 2e 73 20 3d 20 30 3b 0a 20 20 72 2e 63 6c 61 6d 70 28 29 3b 0a 20 | ,x.t);...r.s.=.0;...r.clamp();.. |
2600 | 20 69 66 28 74 68 69 73 2e 73 20 21 3d 20 61 2e 73 29 20 42 69 67 49 6e 74 65 67 65 72 2e 5a 45 | .if(this.s.!=.a.s).BigInteger.ZE |
2620 | 52 4f 2e 73 75 62 54 6f 28 72 2c 72 29 3b 0a 7d 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 | RO.subTo(r,r);.}..//.(protected) |
2640 | 20 72 20 3d 20 74 68 69 73 5e 32 2c 20 72 20 21 3d 20 74 68 69 73 20 28 48 41 43 20 31 34 2e 31 | .r.=.this^2,.r.!=.this.(HAC.14.1 |
2660 | 36 29 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 53 71 75 61 72 65 54 6f 28 72 29 20 7b 0a 20 20 76 | 6).function.bnpSquareTo(r).{...v |
2680 | 61 72 20 78 20 3d 20 74 68 69 73 2e 61 62 73 28 29 3b 0a 20 20 76 61 72 20 69 20 3d 20 72 2e 74 | ar.x.=.this.abs();...var.i.=.r.t |
26a0 | 20 3d 20 32 2a 78 2e 74 3b 0a 20 20 77 68 69 6c 65 28 2d 2d 69 20 3e 3d 20 30 29 20 72 5b 69 5d | .=.2*x.t;...while(--i.>=.0).r[i] |
26c0 | 20 3d 20 30 3b 0a 20 20 66 6f 72 28 69 20 3d 20 30 3b 20 69 20 3c 20 78 2e 74 2d 31 3b 20 2b 2b | .=.0;...for(i.=.0;.i.<.x.t-1;.++ |
26e0 | 69 29 20 7b 0a 20 20 20 20 76 61 72 20 63 20 3d 20 78 2e 61 6d 28 69 2c 78 5b 69 5d 2c 72 2c 32 | i).{.....var.c.=.x.am(i,x[i],r,2 |
2700 | 2a 69 2c 30 2c 31 29 3b 0a 20 20 20 20 69 66 28 28 72 5b 69 2b 78 2e 74 5d 2b 3d 78 2e 61 6d 28 | *i,0,1);.....if((r[i+x.t]+=x.am( |
2720 | 69 2b 31 2c 32 2a 78 5b 69 5d 2c 72 2c 32 2a 69 2b 31 2c 63 2c 78 2e 74 2d 69 2d 31 29 29 20 3e | i+1,2*x[i],r,2*i+1,c,x.t-i-1)).> |
2740 | 3d 20 78 2e 44 56 29 20 7b 0a 20 20 20 20 20 20 72 5b 69 2b 78 2e 74 5d 20 2d 3d 20 78 2e 44 56 | =.x.DV).{.......r[i+x.t].-=.x.DV |
2760 | 3b 0a 20 20 20 20 20 20 72 5b 69 2b 78 2e 74 2b 31 5d 20 3d 20 31 3b 0a 20 20 20 20 7d 0a 20 20 | ;.......r[i+x.t+1].=.1;.....}... |
2780 | 7d 0a 20 20 69 66 28 72 2e 74 20 3e 20 30 29 20 72 5b 72 2e 74 2d 31 5d 20 2b 3d 20 78 2e 61 6d | }...if(r.t.>.0).r[r.t-1].+=.x.am |
27a0 | 28 69 2c 78 5b 69 5d 2c 72 2c 32 2a 69 2c 30 2c 31 29 3b 0a 20 20 72 2e 73 20 3d 20 30 3b 0a 20 | (i,x[i],r,2*i,0,1);...r.s.=.0;.. |
27c0 | 20 72 2e 63 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 64 69 | .r.clamp();.}..//.(protected).di |
27e0 | 76 69 64 65 20 74 68 69 73 20 62 79 20 6d 2c 20 71 75 6f 74 69 65 6e 74 20 61 6e 64 20 72 65 6d | vide.this.by.m,.quotient.and.rem |
2800 | 61 69 6e 64 65 72 20 74 6f 20 71 2c 20 72 20 28 48 41 43 20 31 34 2e 32 30 29 0a 2f 2f 20 72 20 | ainder.to.q,.r.(HAC.14.20).//.r. |
2820 | 21 3d 20 71 2c 20 74 68 69 73 20 21 3d 20 6d 2e 20 20 71 20 6f 72 20 72 20 6d 61 79 20 62 65 20 | !=.q,.this.!=.m...q.or.r.may.be. |
2840 | 6e 75 6c 6c 2e 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 44 69 76 52 65 6d 54 6f 28 6d 2c 71 2c 72 | null..function.bnpDivRemTo(m,q,r |
2860 | 29 20 7b 0a 20 20 76 61 72 20 70 6d 20 3d 20 6d 2e 61 62 73 28 29 3b 0a 20 20 69 66 28 70 6d 2e | ).{...var.pm.=.m.abs();...if(pm. |
2880 | 74 20 3c 3d 20 30 29 20 72 65 74 75 72 6e 3b 0a 20 20 76 61 72 20 70 74 20 3d 20 74 68 69 73 2e | t.<=.0).return;...var.pt.=.this. |
28a0 | 61 62 73 28 29 3b 0a 20 20 69 66 28 70 74 2e 74 20 3c 20 70 6d 2e 74 29 20 7b 0a 20 20 20 20 69 | abs();...if(pt.t.<.pm.t).{.....i |
28c0 | 66 28 71 20 21 3d 20 6e 75 6c 6c 29 20 71 2e 66 72 6f 6d 49 6e 74 28 30 29 3b 0a 20 20 20 20 69 | f(q.!=.null).q.fromInt(0);.....i |
28e0 | 66 28 72 20 21 3d 20 6e 75 6c 6c 29 20 74 68 69 73 2e 63 6f 70 79 54 6f 28 72 29 3b 0a 20 20 20 | f(r.!=.null).this.copyTo(r);.... |
2900 | 20 72 65 74 75 72 6e 3b 0a 20 20 7d 0a 20 20 69 66 28 72 20 3d 3d 20 6e 75 6c 6c 29 20 72 20 3d | .return;...}...if(r.==.null).r.= |
2920 | 20 6e 62 69 28 29 3b 0a 20 20 76 61 72 20 79 20 3d 20 6e 62 69 28 29 2c 20 74 73 20 3d 20 74 68 | .nbi();...var.y.=.nbi(),.ts.=.th |
2940 | 69 73 2e 73 2c 20 6d 73 20 3d 20 6d 2e 73 3b 0a 20 20 76 61 72 20 6e 73 68 20 3d 20 74 68 69 73 | is.s,.ms.=.m.s;...var.nsh.=.this |
2960 | 2e 44 42 2d 6e 62 69 74 73 28 70 6d 5b 70 6d 2e 74 2d 31 5d 29 3b 09 2f 2f 20 6e 6f 72 6d 61 6c | .DB-nbits(pm[pm.t-1]);.//.normal |
2980 | 69 7a 65 20 6d 6f 64 75 6c 75 73 0a 20 20 69 66 28 6e 73 68 20 3e 20 30 29 20 7b 20 70 6d 2e 6c | ize.modulus...if(nsh.>.0).{.pm.l |
29a0 | 53 68 69 66 74 54 6f 28 6e 73 68 2c 79 29 3b 20 70 74 2e 6c 53 68 69 66 74 54 6f 28 6e 73 68 2c | ShiftTo(nsh,y);.pt.lShiftTo(nsh, |
29c0 | 72 29 3b 20 7d 0a 20 20 65 6c 73 65 20 7b 20 70 6d 2e 63 6f 70 79 54 6f 28 79 29 3b 20 70 74 2e | r);.}...else.{.pm.copyTo(y);.pt. |
29e0 | 63 6f 70 79 54 6f 28 72 29 3b 20 7d 0a 20 20 76 61 72 20 79 73 20 3d 20 79 2e 74 3b 0a 20 20 76 | copyTo(r);.}...var.ys.=.y.t;...v |
2a00 | 61 72 20 79 30 20 3d 20 79 5b 79 73 2d 31 5d 3b 0a 20 20 69 66 28 79 30 20 3d 3d 20 30 29 20 72 | ar.y0.=.y[ys-1];...if(y0.==.0).r |
2a20 | 65 74 75 72 6e 3b 0a 20 20 76 61 72 20 79 74 20 3d 20 79 30 2a 28 31 3c 3c 74 68 69 73 2e 46 31 | eturn;...var.yt.=.y0*(1<<this.F1 |
2a40 | 29 2b 28 28 79 73 3e 31 29 3f 79 5b 79 73 2d 32 5d 3e 3e 74 68 69 73 2e 46 32 3a 30 29 3b 0a 20 | )+((ys>1)?y[ys-2]>>this.F2:0);.. |
2a60 | 20 76 61 72 20 64 31 20 3d 20 74 68 69 73 2e 46 56 2f 79 74 2c 20 64 32 20 3d 20 28 31 3c 3c 74 | .var.d1.=.this.FV/yt,.d2.=.(1<<t |
2a80 | 68 69 73 2e 46 31 29 2f 79 74 2c 20 65 20 3d 20 31 3c 3c 74 68 69 73 2e 46 32 3b 0a 20 20 76 61 | his.F1)/yt,.e.=.1<<this.F2;...va |
2aa0 | 72 20 69 20 3d 20 72 2e 74 2c 20 6a 20 3d 20 69 2d 79 73 2c 20 74 20 3d 20 28 71 3d 3d 6e 75 6c | r.i.=.r.t,.j.=.i-ys,.t.=.(q==nul |
2ac0 | 6c 29 3f 6e 62 69 28 29 3a 71 3b 0a 20 20 79 2e 64 6c 53 68 69 66 74 54 6f 28 6a 2c 74 29 3b 0a | l)?nbi():q;...y.dlShiftTo(j,t);. |
2ae0 | 20 20 69 66 28 72 2e 63 6f 6d 70 61 72 65 54 6f 28 74 29 20 3e 3d 20 30 29 20 7b 0a 20 20 20 20 | ..if(r.compareTo(t).>=.0).{..... |
2b00 | 72 5b 72 2e 74 2b 2b 5d 20 3d 20 31 3b 0a 20 20 20 20 72 2e 73 75 62 54 6f 28 74 2c 72 29 3b 0a | r[r.t++].=.1;.....r.subTo(t,r);. |
2b20 | 20 20 7d 0a 20 20 42 69 67 49 6e 74 65 67 65 72 2e 4f 4e 45 2e 64 6c 53 68 69 66 74 54 6f 28 79 | ..}...BigInteger.ONE.dlShiftTo(y |
2b40 | 73 2c 74 29 3b 0a 20 20 74 2e 73 75 62 54 6f 28 79 2c 79 29 3b 09 2f 2f 20 22 6e 65 67 61 74 69 | s,t);...t.subTo(y,y);.//."negati |
2b60 | 76 65 22 20 79 20 73 6f 20 77 65 20 63 61 6e 20 72 65 70 6c 61 63 65 20 73 75 62 20 77 69 74 68 | ve".y.so.we.can.replace.sub.with |
2b80 | 20 61 6d 20 6c 61 74 65 72 0a 20 20 77 68 69 6c 65 28 79 2e 74 20 3c 20 79 73 29 20 79 5b 79 2e | .am.later...while(y.t.<.ys).y[y. |
2ba0 | 74 2b 2b 5d 20 3d 20 30 3b 0a 20 20 77 68 69 6c 65 28 2d 2d 6a 20 3e 3d 20 30 29 20 7b 0a 20 20 | t++].=.0;...while(--j.>=.0).{... |
2bc0 | 20 20 2f 2f 20 45 73 74 69 6d 61 74 65 20 71 75 6f 74 69 65 6e 74 20 64 69 67 69 74 0a 20 20 20 | ..//.Estimate.quotient.digit.... |
2be0 | 20 76 61 72 20 71 64 20 3d 20 28 72 5b 2d 2d 69 5d 3d 3d 79 30 29 3f 74 68 69 73 2e 44 4d 3a 4d | .var.qd.=.(r[--i]==y0)?this.DM:M |
2c00 | 61 74 68 2e 66 6c 6f 6f 72 28 72 5b 69 5d 2a 64 31 2b 28 72 5b 69 2d 31 5d 2b 65 29 2a 64 32 29 | ath.floor(r[i]*d1+(r[i-1]+e)*d2) |
2c20 | 3b 0a 20 20 20 20 69 66 28 28 72 5b 69 5d 2b 3d 79 2e 61 6d 28 30 2c 71 64 2c 72 2c 6a 2c 30 2c | ;.....if((r[i]+=y.am(0,qd,r,j,0, |
2c40 | 79 73 29 29 20 3c 20 71 64 29 20 7b 09 2f 2f 20 54 72 79 20 69 74 20 6f 75 74 0a 20 20 20 20 20 | ys)).<.qd).{.//.Try.it.out...... |
2c60 | 20 79 2e 64 6c 53 68 69 66 74 54 6f 28 6a 2c 74 29 3b 0a 20 20 20 20 20 20 72 2e 73 75 62 54 6f | .y.dlShiftTo(j,t);.......r.subTo |
2c80 | 28 74 2c 72 29 3b 0a 20 20 20 20 20 20 77 68 69 6c 65 28 72 5b 69 5d 20 3c 20 2d 2d 71 64 29 20 | (t,r);.......while(r[i].<.--qd). |
2ca0 | 72 2e 73 75 62 54 6f 28 74 2c 72 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 69 66 28 71 20 21 | r.subTo(t,r);.....}...}...if(q.! |
2cc0 | 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 72 2e 64 72 53 68 69 66 74 54 6f 28 79 73 2c 71 29 3b | =.null).{.....r.drShiftTo(ys,q); |
2ce0 | 0a 20 20 20 20 69 66 28 74 73 20 21 3d 20 6d 73 29 20 42 69 67 49 6e 74 65 67 65 72 2e 5a 45 52 | .....if(ts.!=.ms).BigInteger.ZER |
2d00 | 4f 2e 73 75 62 54 6f 28 71 2c 71 29 3b 0a 20 20 7d 0a 20 20 72 2e 74 20 3d 20 79 73 3b 0a 20 20 | O.subTo(q,q);...}...r.t.=.ys;... |
2d20 | 72 2e 63 6c 61 6d 70 28 29 3b 0a 20 20 69 66 28 6e 73 68 20 3e 20 30 29 20 72 2e 72 53 68 69 66 | r.clamp();...if(nsh.>.0).r.rShif |
2d40 | 74 54 6f 28 6e 73 68 2c 72 29 3b 09 2f 2f 20 44 65 6e 6f 72 6d 61 6c 69 7a 65 20 72 65 6d 61 69 | tTo(nsh,r);.//.Denormalize.remai |
2d60 | 6e 64 65 72 0a 20 20 69 66 28 74 73 20 3c 20 30 29 20 42 69 67 49 6e 74 65 67 65 72 2e 5a 45 52 | nder...if(ts.<.0).BigInteger.ZER |
2d80 | 4f 2e 73 75 62 54 6f 28 72 2c 72 29 3b 0a 7d 0a 0a 2f 2f 20 28 70 75 62 6c 69 63 29 20 74 68 69 | O.subTo(r,r);.}..//.(public).thi |
2da0 | 73 20 6d 6f 64 20 61 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 4d 6f 64 28 61 29 20 7b 0a 20 20 76 61 | s.mod.a.function.bnMod(a).{...va |
2dc0 | 72 20 72 20 3d 20 6e 62 69 28 29 3b 0a 20 20 74 68 69 73 2e 61 62 73 28 29 2e 64 69 76 52 65 6d | r.r.=.nbi();...this.abs().divRem |
2de0 | 54 6f 28 61 2c 6e 75 6c 6c 2c 72 29 3b 0a 20 20 69 66 28 74 68 69 73 2e 73 20 3c 20 30 20 26 26 | To(a,null,r);...if(this.s.<.0.&& |
2e00 | 20 72 2e 63 6f 6d 70 61 72 65 54 6f 28 42 69 67 49 6e 74 65 67 65 72 2e 5a 45 52 4f 29 20 3e 20 | .r.compareTo(BigInteger.ZERO).>. |
2e20 | 30 29 20 61 2e 73 75 62 54 6f 28 72 2c 72 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a | 0).a.subTo(r,r);...return.r;.}.. |
2e40 | 2f 2f 20 4d 6f 64 75 6c 61 72 20 72 65 64 75 63 74 69 6f 6e 20 75 73 69 6e 67 20 22 63 6c 61 73 | //.Modular.reduction.using."clas |
2e60 | 73 69 63 22 20 61 6c 67 6f 72 69 74 68 6d 0a 66 75 6e 63 74 69 6f 6e 20 43 6c 61 73 73 69 63 28 | sic".algorithm.function.Classic( |
2e80 | 6d 29 20 7b 20 74 68 69 73 2e 6d 20 3d 20 6d 3b 20 7d 0a 66 75 6e 63 74 69 6f 6e 20 63 43 6f 6e | m).{.this.m.=.m;.}.function.cCon |
2ea0 | 76 65 72 74 28 78 29 20 7b 0a 20 20 69 66 28 78 2e 73 20 3c 20 30 20 7c 7c 20 78 2e 63 6f 6d 70 | vert(x).{...if(x.s.<.0.||.x.comp |
2ec0 | 61 72 65 54 6f 28 74 68 69 73 2e 6d 29 20 3e 3d 20 30 29 20 72 65 74 75 72 6e 20 78 2e 6d 6f 64 | areTo(this.m).>=.0).return.x.mod |
2ee0 | 28 74 68 69 73 2e 6d 29 3b 0a 20 20 65 6c 73 65 20 72 65 74 75 72 6e 20 78 3b 0a 7d 0a 66 75 6e | (this.m);...else.return.x;.}.fun |
2f00 | 63 74 69 6f 6e 20 63 52 65 76 65 72 74 28 78 29 20 7b 20 72 65 74 75 72 6e 20 78 3b 20 7d 0a 66 | ction.cRevert(x).{.return.x;.}.f |
2f20 | 75 6e 63 74 69 6f 6e 20 63 52 65 64 75 63 65 28 78 29 20 7b 20 78 2e 64 69 76 52 65 6d 54 6f 28 | unction.cReduce(x).{.x.divRemTo( |
2f40 | 74 68 69 73 2e 6d 2c 6e 75 6c 6c 2c 78 29 3b 20 7d 0a 66 75 6e 63 74 69 6f 6e 20 63 4d 75 6c 54 | this.m,null,x);.}.function.cMulT |
2f60 | 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 2c 72 29 3b 20 74 68 | o(x,y,r).{.x.multiplyTo(y,r);.th |
2f80 | 69 73 2e 72 65 64 75 63 65 28 72 29 3b 20 7d 0a 66 75 6e 63 74 69 6f 6e 20 63 53 71 72 54 6f 28 | is.reduce(r);.}.function.cSqrTo( |
2fa0 | 78 2c 72 29 20 7b 20 78 2e 73 71 75 61 72 65 54 6f 28 72 29 3b 20 74 68 69 73 2e 72 65 64 75 63 | x,r).{.x.squareTo(r);.this.reduc |
2fc0 | 65 28 72 29 3b 20 7d 0a 0a 43 6c 61 73 73 69 63 2e 70 72 6f 74 6f 74 79 70 65 2e 63 6f 6e 76 65 | e(r);.}..Classic.prototype.conve |
2fe0 | 72 74 20 3d 20 63 43 6f 6e 76 65 72 74 3b 0a 43 6c 61 73 73 69 63 2e 70 72 6f 74 6f 74 79 70 65 | rt.=.cConvert;.Classic.prototype |
3000 | 2e 72 65 76 65 72 74 20 3d 20 63 52 65 76 65 72 74 3b 0a 43 6c 61 73 73 69 63 2e 70 72 6f 74 6f | .revert.=.cRevert;.Classic.proto |
3020 | 74 79 70 65 2e 72 65 64 75 63 65 20 3d 20 63 52 65 64 75 63 65 3b 0a 43 6c 61 73 73 69 63 2e 70 | type.reduce.=.cReduce;.Classic.p |
3040 | 72 6f 74 6f 74 79 70 65 2e 6d 75 6c 54 6f 20 3d 20 63 4d 75 6c 54 6f 3b 0a 43 6c 61 73 73 69 63 | rototype.mulTo.=.cMulTo;.Classic |
3060 | 2e 70 72 6f 74 6f 74 79 70 65 2e 73 71 72 54 6f 20 3d 20 63 53 71 72 54 6f 3b 0a 0a 2f 2f 20 28 | .prototype.sqrTo.=.cSqrTo;..//.( |
3080 | 70 72 6f 74 65 63 74 65 64 29 20 72 65 74 75 72 6e 20 22 2d 31 2f 74 68 69 73 20 25 20 32 5e 44 | protected).return."-1/this.%.2^D |
30a0 | 42 22 3b 20 75 73 65 66 75 6c 20 66 6f 72 20 4d 6f 6e 74 2e 20 72 65 64 75 63 74 69 6f 6e 0a 2f | B";.useful.for.Mont..reduction./ |
30c0 | 2f 20 6a 75 73 74 69 66 69 63 61 74 69 6f 6e 3a 0a 2f 2f 20 20 20 20 20 20 20 20 20 78 79 20 3d | /.justification:.//.........xy.= |
30e0 | 3d 20 31 20 28 6d 6f 64 20 6d 29 0a 2f 2f 20 20 20 20 20 20 20 20 20 78 79 20 3d 20 20 31 2b 6b | =.1.(mod.m).//.........xy.=..1+k |
3100 | 6d 0a 2f 2f 20 20 20 78 79 28 32 2d 78 79 29 20 3d 20 28 31 2b 6b 6d 29 28 31 2d 6b 6d 29 0a 2f | m.//...xy(2-xy).=.(1+km)(1-km)./ |
3120 | 2f 20 78 5b 79 28 32 2d 78 79 29 5d 20 3d 20 31 2d 6b 5e 32 6d 5e 32 0a 2f 2f 20 78 5b 79 28 32 | /.x[y(2-xy)].=.1-k^2m^2.//.x[y(2 |
3140 | 2d 78 79 29 5d 20 3d 3d 20 31 20 28 6d 6f 64 20 6d 5e 32 29 0a 2f 2f 20 69 66 20 79 20 69 73 20 | -xy)].==.1.(mod.m^2).//.if.y.is. |
3160 | 31 2f 78 20 6d 6f 64 20 6d 2c 20 74 68 65 6e 20 79 28 32 2d 78 79 29 20 69 73 20 31 2f 78 20 6d | 1/x.mod.m,.then.y(2-xy).is.1/x.m |
3180 | 6f 64 20 6d 5e 32 0a 2f 2f 20 73 68 6f 75 6c 64 20 72 65 64 75 63 65 20 78 20 61 6e 64 20 79 28 | od.m^2.//.should.reduce.x.and.y( |
31a0 | 32 2d 78 79 29 20 62 79 20 6d 5e 32 20 61 74 20 65 61 63 68 20 73 74 65 70 20 74 6f 20 6b 65 65 | 2-xy).by.m^2.at.each.step.to.kee |
31c0 | 70 20 73 69 7a 65 20 62 6f 75 6e 64 65 64 2e 0a 2f 2f 20 4a 53 20 6d 75 6c 74 69 70 6c 79 20 22 | p.size.bounded..//.JS.multiply." |
31e0 | 6f 76 65 72 66 6c 6f 77 73 22 20 64 69 66 66 65 72 65 6e 74 6c 79 20 66 72 6f 6d 20 43 2f 43 2b | overflows".differently.from.C/C+ |
3200 | 2b 2c 20 73 6f 20 63 61 72 65 20 69 73 20 6e 65 65 64 65 64 20 68 65 72 65 2e 0a 66 75 6e 63 74 | +,.so.care.is.needed.here..funct |
3220 | 69 6f 6e 20 62 6e 70 49 6e 76 44 69 67 69 74 28 29 20 7b 0a 20 20 69 66 28 74 68 69 73 2e 74 20 | ion.bnpInvDigit().{...if(this.t. |
3240 | 3c 20 31 29 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 76 61 72 20 78 20 3d 20 74 68 69 73 5b 30 5d | <.1).return.0;...var.x.=.this[0] |
3260 | 3b 0a 20 20 69 66 28 28 78 26 31 29 20 3d 3d 20 30 29 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 76 | ;...if((x&1).==.0).return.0;...v |
3280 | 61 72 20 79 20 3d 20 78 26 33 3b 09 09 2f 2f 20 79 20 3d 3d 20 31 2f 78 20 6d 6f 64 20 32 5e 32 | ar.y.=.x&3;..//.y.==.1/x.mod.2^2 |
32a0 | 0a 20 20 79 20 3d 20 28 79 2a 28 32 2d 28 78 26 30 78 66 29 2a 79 29 29 26 30 78 66 3b 09 2f 2f | ...y.=.(y*(2-(x&0xf)*y))&0xf;.// |
32c0 | 20 79 20 3d 3d 20 31 2f 78 20 6d 6f 64 20 32 5e 34 0a 20 20 79 20 3d 20 28 79 2a 28 32 2d 28 78 | .y.==.1/x.mod.2^4...y.=.(y*(2-(x |
32e0 | 26 30 78 66 66 29 2a 79 29 29 26 30 78 66 66 3b 09 2f 2f 20 79 20 3d 3d 20 31 2f 78 20 6d 6f 64 | &0xff)*y))&0xff;.//.y.==.1/x.mod |
3300 | 20 32 5e 38 0a 20 20 79 20 3d 20 28 79 2a 28 32 2d 28 28 28 78 26 30 78 66 66 66 66 29 2a 79 29 | .2^8...y.=.(y*(2-(((x&0xffff)*y) |
3320 | 26 30 78 66 66 66 66 29 29 29 26 30 78 66 66 66 66 3b 09 2f 2f 20 79 20 3d 3d 20 31 2f 78 20 6d | &0xffff)))&0xffff;.//.y.==.1/x.m |
3340 | 6f 64 20 32 5e 31 36 0a 20 20 2f 2f 20 6c 61 73 74 20 73 74 65 70 20 2d 20 63 61 6c 63 75 6c 61 | od.2^16...//.last.step.-.calcula |
3360 | 74 65 20 69 6e 76 65 72 73 65 20 6d 6f 64 20 44 56 20 64 69 72 65 63 74 6c 79 3b 0a 20 20 2f 2f | te.inverse.mod.DV.directly;...// |
3380 | 20 61 73 73 75 6d 65 73 20 31 36 20 3c 20 44 42 20 3c 3d 20 33 32 20 61 6e 64 20 61 73 73 75 6d | .assumes.16.<.DB.<=.32.and.assum |
33a0 | 65 73 20 61 62 69 6c 69 74 79 20 74 6f 20 68 61 6e 64 6c 65 20 34 38 2d 62 69 74 20 69 6e 74 73 | es.ability.to.handle.48-bit.ints |
33c0 | 0a 20 20 79 20 3d 20 28 79 2a 28 32 2d 78 2a 79 25 74 68 69 73 2e 44 56 29 29 25 74 68 69 73 2e | ...y.=.(y*(2-x*y%this.DV))%this. |
33e0 | 44 56 3b 09 09 2f 2f 20 79 20 3d 3d 20 31 2f 78 20 6d 6f 64 20 32 5e 64 62 69 74 73 0a 20 20 2f | DV;..//.y.==.1/x.mod.2^dbits.../ |
3400 | 2f 20 77 65 20 72 65 61 6c 6c 79 20 77 61 6e 74 20 74 68 65 20 6e 65 67 61 74 69 76 65 20 69 6e | /.we.really.want.the.negative.in |
3420 | 76 65 72 73 65 2c 20 61 6e 64 20 2d 44 56 20 3c 20 79 20 3c 20 44 56 0a 20 20 72 65 74 75 72 6e | verse,.and.-DV.<.y.<.DV...return |
3440 | 20 28 79 3e 30 29 3f 74 68 69 73 2e 44 56 2d 79 3a 2d 79 3b 0a 7d 0a 0a 2f 2f 20 4d 6f 6e 74 67 | .(y>0)?this.DV-y:-y;.}..//.Montg |
3460 | 6f 6d 65 72 79 20 72 65 64 75 63 74 69 6f 6e 0a 66 75 6e 63 74 69 6f 6e 20 4d 6f 6e 74 67 6f 6d | omery.reduction.function.Montgom |
3480 | 65 72 79 28 6d 29 20 7b 0a 20 20 74 68 69 73 2e 6d 20 3d 20 6d 3b 0a 20 20 74 68 69 73 2e 6d 70 | ery(m).{...this.m.=.m;...this.mp |
34a0 | 20 3d 20 6d 2e 69 6e 76 44 69 67 69 74 28 29 3b 0a 20 20 74 68 69 73 2e 6d 70 6c 20 3d 20 74 68 | .=.m.invDigit();...this.mpl.=.th |
34c0 | 69 73 2e 6d 70 26 30 78 37 66 66 66 3b 0a 20 20 74 68 69 73 2e 6d 70 68 20 3d 20 74 68 69 73 2e | is.mp&0x7fff;...this.mph.=.this. |
34e0 | 6d 70 3e 3e 31 35 3b 0a 20 20 74 68 69 73 2e 75 6d 20 3d 20 28 31 3c 3c 28 6d 2e 44 42 2d 31 35 | mp>>15;...this.um.=.(1<<(m.DB-15 |
3500 | 29 29 2d 31 3b 0a 20 20 74 68 69 73 2e 6d 74 32 20 3d 20 32 2a 6d 2e 74 3b 0a 7d 0a 0a 2f 2f 20 | ))-1;...this.mt2.=.2*m.t;.}..//. |
3520 | 78 52 20 6d 6f 64 20 6d 0a 66 75 6e 63 74 69 6f 6e 20 6d 6f 6e 74 43 6f 6e 76 65 72 74 28 78 29 | xR.mod.m.function.montConvert(x) |
3540 | 20 7b 0a 20 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 0a 20 20 78 2e 61 62 73 28 29 2e 64 6c | .{...var.r.=.nbi();...x.abs().dl |
3560 | 53 68 69 66 74 54 6f 28 74 68 69 73 2e 6d 2e 74 2c 72 29 3b 0a 20 20 72 2e 64 69 76 52 65 6d 54 | ShiftTo(this.m.t,r);...r.divRemT |
3580 | 6f 28 74 68 69 73 2e 6d 2c 6e 75 6c 6c 2c 72 29 3b 0a 20 20 69 66 28 78 2e 73 20 3c 20 30 20 26 | o(this.m,null,r);...if(x.s.<.0.& |
35a0 | 26 20 72 2e 63 6f 6d 70 61 72 65 54 6f 28 42 69 67 49 6e 74 65 67 65 72 2e 5a 45 52 4f 29 20 3e | &.r.compareTo(BigInteger.ZERO).> |
35c0 | 20 30 29 20 74 68 69 73 2e 6d 2e 73 75 62 54 6f 28 72 2c 72 29 3b 0a 20 20 72 65 74 75 72 6e 20 | .0).this.m.subTo(r,r);...return. |
35e0 | 72 3b 0a 7d 0a 0a 2f 2f 20 78 2f 52 20 6d 6f 64 20 6d 0a 66 75 6e 63 74 69 6f 6e 20 6d 6f 6e 74 | r;.}..//.x/R.mod.m.function.mont |
3600 | 52 65 76 65 72 74 28 78 29 20 7b 0a 20 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 3b 0a 20 20 78 | Revert(x).{...var.r.=.nbi();...x |
3620 | 2e 63 6f 70 79 54 6f 28 72 29 3b 0a 20 20 74 68 69 73 2e 72 65 64 75 63 65 28 72 29 3b 0a 20 20 | .copyTo(r);...this.reduce(r);... |
3640 | 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a 2f 2f 20 78 20 3d 20 78 2f 52 20 6d 6f 64 20 6d 20 28 48 | return.r;.}..//.x.=.x/R.mod.m.(H |
3660 | 41 43 20 31 34 2e 33 32 29 0a 66 75 6e 63 74 69 6f 6e 20 6d 6f 6e 74 52 65 64 75 63 65 28 78 29 | AC.14.32).function.montReduce(x) |
3680 | 20 7b 0a 20 20 77 68 69 6c 65 28 78 2e 74 20 3c 3d 20 74 68 69 73 2e 6d 74 32 29 09 2f 2f 20 70 | .{...while(x.t.<=.this.mt2).//.p |
36a0 | 61 64 20 78 20 73 6f 20 61 6d 20 68 61 73 20 65 6e 6f 75 67 68 20 72 6f 6f 6d 20 6c 61 74 65 72 | ad.x.so.am.has.enough.room.later |
36c0 | 0a 20 20 20 20 78 5b 78 2e 74 2b 2b 5d 20 3d 20 30 3b 0a 20 20 66 6f 72 28 76 61 72 20 69 20 3d | .....x[x.t++].=.0;...for(var.i.= |
36e0 | 20 30 3b 20 69 20 3c 20 74 68 69 73 2e 6d 2e 74 3b 20 2b 2b 69 29 20 7b 0a 20 20 20 20 2f 2f 20 | .0;.i.<.this.m.t;.++i).{.....//. |
3700 | 66 61 73 74 65 72 20 77 61 79 20 6f 66 20 63 61 6c 63 75 6c 61 74 69 6e 67 20 75 30 20 3d 20 78 | faster.way.of.calculating.u0.=.x |
3720 | 5b 69 5d 2a 6d 70 20 6d 6f 64 20 44 56 0a 20 20 20 20 76 61 72 20 6a 20 3d 20 78 5b 69 5d 26 30 | [i]*mp.mod.DV.....var.j.=.x[i]&0 |
3740 | 78 37 66 66 66 3b 0a 20 20 20 20 76 61 72 20 75 30 20 3d 20 28 6a 2a 74 68 69 73 2e 6d 70 6c 2b | x7fff;.....var.u0.=.(j*this.mpl+ |
3760 | 28 28 28 6a 2a 74 68 69 73 2e 6d 70 68 2b 28 78 5b 69 5d 3e 3e 31 35 29 2a 74 68 69 73 2e 6d 70 | (((j*this.mph+(x[i]>>15)*this.mp |
3780 | 6c 29 26 74 68 69 73 2e 75 6d 29 3c 3c 31 35 29 29 26 78 2e 44 4d 3b 0a 20 20 20 20 2f 2f 20 75 | l)&this.um)<<15))&x.DM;.....//.u |
37a0 | 73 65 20 61 6d 20 74 6f 20 63 6f 6d 62 69 6e 65 20 74 68 65 20 6d 75 6c 74 69 70 6c 79 2d 73 68 | se.am.to.combine.the.multiply-sh |
37c0 | 69 66 74 2d 61 64 64 20 69 6e 74 6f 20 6f 6e 65 20 63 61 6c 6c 0a 20 20 20 20 6a 20 3d 20 69 2b | ift-add.into.one.call.....j.=.i+ |
37e0 | 74 68 69 73 2e 6d 2e 74 3b 0a 20 20 20 20 78 5b 6a 5d 20 2b 3d 20 74 68 69 73 2e 6d 2e 61 6d 28 | this.m.t;.....x[j].+=.this.m.am( |
3800 | 30 2c 75 30 2c 78 2c 69 2c 30 2c 74 68 69 73 2e 6d 2e 74 29 3b 0a 20 20 20 20 2f 2f 20 70 72 6f | 0,u0,x,i,0,this.m.t);.....//.pro |
3820 | 70 61 67 61 74 65 20 63 61 72 72 79 0a 20 20 20 20 77 68 69 6c 65 28 78 5b 6a 5d 20 3e 3d 20 78 | pagate.carry.....while(x[j].>=.x |
3840 | 2e 44 56 29 20 7b 20 78 5b 6a 5d 20 2d 3d 20 78 2e 44 56 3b 20 78 5b 2b 2b 6a 5d 2b 2b 3b 20 7d | .DV).{.x[j].-=.x.DV;.x[++j]++;.} |
3860 | 0a 20 20 7d 0a 20 20 78 2e 63 6c 61 6d 70 28 29 3b 0a 20 20 78 2e 64 72 53 68 69 66 74 54 6f 28 | ...}...x.clamp();...x.drShiftTo( |
3880 | 74 68 69 73 2e 6d 2e 74 2c 78 29 3b 0a 20 20 69 66 28 78 2e 63 6f 6d 70 61 72 65 54 6f 28 74 68 | this.m.t,x);...if(x.compareTo(th |
38a0 | 69 73 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 | is.m).>=.0).x.subTo(this.m,x);.} |
38c0 | 0a 0a 2f 2f 20 72 20 3d 20 22 78 5e 32 2f 52 20 6d 6f 64 20 6d 22 3b 20 78 20 21 3d 20 72 0a 66 | ..//.r.=."x^2/R.mod.m";.x.!=.r.f |
38e0 | 75 6e 63 74 69 6f 6e 20 6d 6f 6e 74 53 71 72 54 6f 28 78 2c 72 29 20 7b 20 78 2e 73 71 75 61 72 | unction.montSqrTo(x,r).{.x.squar |
3900 | 65 54 6f 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 | eTo(r);.this.reduce(r);.}..//.r. |
3920 | 3d 20 22 78 79 2f 52 20 6d 6f 64 20 6d 22 3b 20 78 2c 79 20 21 3d 20 72 0a 66 75 6e 63 74 69 6f | =."xy/R.mod.m";.x,y.!=.r.functio |
3940 | 6e 20 6d 6f 6e 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 | n.montMulTo(x,y,r).{.x.multiplyT |
3960 | 6f 28 79 2c 72 29 3b 20 74 68 69 73 2e 72 65 64 75 63 65 28 72 29 3b 20 7d 0a 0a 4d 6f 6e 74 67 | o(y,r);.this.reduce(r);.}..Montg |
3980 | 6f 6d 65 72 79 2e 70 72 6f 74 6f 74 79 70 65 2e 63 6f 6e 76 65 72 74 20 3d 20 6d 6f 6e 74 43 6f | omery.prototype.convert.=.montCo |
39a0 | 6e 76 65 72 74 3b 0a 4d 6f 6e 74 67 6f 6d 65 72 79 2e 70 72 6f 74 6f 74 79 70 65 2e 72 65 76 65 | nvert;.Montgomery.prototype.reve |
39c0 | 72 74 20 3d 20 6d 6f 6e 74 52 65 76 65 72 74 3b 0a 4d 6f 6e 74 67 6f 6d 65 72 79 2e 70 72 6f 74 | rt.=.montRevert;.Montgomery.prot |
39e0 | 6f 74 79 70 65 2e 72 65 64 75 63 65 20 3d 20 6d 6f 6e 74 52 65 64 75 63 65 3b 0a 4d 6f 6e 74 67 | otype.reduce.=.montReduce;.Montg |
3a00 | 6f 6d 65 72 79 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 75 6c 54 6f 20 3d 20 6d 6f 6e 74 4d 75 6c 54 | omery.prototype.mulTo.=.montMulT |
3a20 | 6f 3b 0a 4d 6f 6e 74 67 6f 6d 65 72 79 2e 70 72 6f 74 6f 74 79 70 65 2e 73 71 72 54 6f 20 3d 20 | o;.Montgomery.prototype.sqrTo.=. |
3a40 | 6d 6f 6e 74 53 71 72 54 6f 3b 0a 0a 2f 2f 20 28 70 72 6f 74 65 63 74 65 64 29 20 74 72 75 65 20 | montSqrTo;..//.(protected).true. |
3a60 | 69 66 66 20 74 68 69 73 20 69 73 20 65 76 65 6e 0a 66 75 6e 63 74 69 6f 6e 20 62 6e 70 49 73 45 | iff.this.is.even.function.bnpIsE |
3a80 | 76 65 6e 28 29 20 7b 20 72 65 74 75 72 6e 20 28 28 74 68 69 73 2e 74 3e 30 29 3f 28 74 68 69 73 | ven().{.return.((this.t>0)?(this |
3aa0 | 5b 30 5d 26 31 29 3a 74 68 69 73 2e 73 29 20 3d 3d 20 30 3b 20 7d 0a 0a 2f 2f 20 28 70 72 6f 74 | [0]&1):this.s).==.0;.}..//.(prot |
3ac0 | 65 63 74 65 64 29 20 74 68 69 73 5e 65 2c 20 65 20 3c 20 32 5e 33 32 2c 20 64 6f 69 6e 67 20 73 | ected).this^e,.e.<.2^32,.doing.s |
3ae0 | 71 72 20 61 6e 64 20 6d 75 6c 20 77 69 74 68 20 22 72 22 20 28 48 41 43 20 31 34 2e 37 39 29 0a | qr.and.mul.with."r".(HAC.14.79). |
3b00 | 66 75 6e 63 74 69 6f 6e 20 62 6e 70 45 78 70 28 65 2c 7a 29 20 7b 0a 20 20 69 66 28 65 20 3e 20 | function.bnpExp(e,z).{...if(e.>. |
3b20 | 30 78 66 66 66 66 66 66 66 66 20 7c 7c 20 65 20 3c 20 31 29 20 72 65 74 75 72 6e 20 42 69 67 49 | 0xffffffff.||.e.<.1).return.BigI |
3b40 | 6e 74 65 67 65 72 2e 4f 4e 45 3b 0a 20 20 76 61 72 20 72 20 3d 20 6e 62 69 28 29 2c 20 72 32 20 | nteger.ONE;...var.r.=.nbi(),.r2. |
3b60 | 3d 20 6e 62 69 28 29 2c 20 67 20 3d 20 7a 2e 63 6f 6e 76 65 72 74 28 74 68 69 73 29 2c 20 69 20 | =.nbi(),.g.=.z.convert(this),.i. |
3b80 | 3d 20 6e 62 69 74 73 28 65 29 2d 31 3b 0a 20 20 67 2e 63 6f 70 79 54 6f 28 72 29 3b 0a 20 20 77 | =.nbits(e)-1;...g.copyTo(r);...w |
3ba0 | 68 69 6c 65 28 2d 2d 69 20 3e 3d 20 30 29 20 7b 0a 20 20 20 20 7a 2e 73 71 72 54 6f 28 72 2c 72 | hile(--i.>=.0).{.....z.sqrTo(r,r |
3bc0 | 32 29 3b 0a 20 20 20 20 69 66 28 28 65 26 28 31 3c 3c 69 29 29 20 3e 20 30 29 20 7a 2e 6d 75 6c | 2);.....if((e&(1<<i)).>.0).z.mul |
3be0 | 54 6f 28 72 32 2c 67 2c 72 29 3b 0a 20 20 20 20 65 6c 73 65 20 7b 20 76 61 72 20 74 20 3d 20 72 | To(r2,g,r);.....else.{.var.t.=.r |
3c00 | 3b 20 72 20 3d 20 72 32 3b 20 72 32 20 3d 20 74 3b 20 7d 0a 20 20 7d 0a 20 20 72 65 74 75 72 6e | ;.r.=.r2;.r2.=.t;.}...}...return |
3c20 | 20 7a 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 74 68 69 | .z.revert(r);.}..//.(public).thi |
3c40 | 73 5e 65 20 25 20 6d 2c 20 30 20 3c 3d 20 65 20 3c 20 32 5e 33 32 0a 66 75 6e 63 74 69 6f 6e 20 | s^e.%.m,.0.<=.e.<.2^32.function. |
3c60 | 62 6e 4d 6f 64 50 6f 77 49 6e 74 28 65 2c 6d 29 20 7b 0a 20 20 76 61 72 20 7a 3b 0a 20 20 69 66 | bnModPowInt(e,m).{...var.z;...if |
3c80 | 28 65 20 3c 20 32 35 36 20 7c 7c 20 6d 2e 69 73 45 76 65 6e 28 29 29 20 7a 20 3d 20 6e 65 77 20 | (e.<.256.||.m.isEven()).z.=.new. |
3ca0 | 43 6c 61 73 73 69 63 28 6d 29 3b 20 65 6c 73 65 20 7a 20 3d 20 6e 65 77 20 4d 6f 6e 74 67 6f 6d | Classic(m);.else.z.=.new.Montgom |
3cc0 | 65 72 79 28 6d 29 3b 0a 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 65 78 70 28 65 2c 7a 29 3b 0a | ery(m);...return.this.exp(e,z);. |
3ce0 | 7d 0a 0a 2f 2f 20 70 72 6f 74 65 63 74 65 64 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f | }..//.protected.BigInteger.proto |
3d00 | 74 79 70 65 2e 63 6f 70 79 54 6f 20 3d 20 62 6e 70 43 6f 70 79 54 6f 3b 0a 42 69 67 49 6e 74 65 | type.copyTo.=.bnpCopyTo;.BigInte |
3d20 | 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 66 72 6f 6d 49 6e 74 20 3d 20 62 6e 70 46 72 6f 6d 49 | ger.prototype.fromInt.=.bnpFromI |
3d40 | 6e 74 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 6d 53 74 72 | nt;.BigInteger.prototype.fromStr |
3d60 | 69 6e 67 20 3d 20 62 6e 70 46 72 6f 6d 53 74 72 69 6e 67 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e | ing.=.bnpFromString;.BigInteger. |
3d80 | 70 72 6f 74 6f 74 79 70 65 2e 63 6c 61 6d 70 20 3d 20 62 6e 70 43 6c 61 6d 70 3b 0a 42 69 67 49 | prototype.clamp.=.bnpClamp;.BigI |
3da0 | 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 64 6c 53 68 69 66 74 54 6f 20 3d 20 62 6e 70 | nteger.prototype.dlShiftTo.=.bnp |
3dc0 | 44 4c 53 68 69 66 74 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 | DLShiftTo;.BigInteger.prototype. |
3de0 | 64 72 53 68 69 66 74 54 6f 20 3d 20 62 6e 70 44 52 53 68 69 66 74 54 6f 3b 0a 42 69 67 49 6e 74 | drShiftTo.=.bnpDRShiftTo;.BigInt |
3e00 | 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6c 53 68 69 66 74 54 6f 20 3d 20 62 6e 70 4c 53 68 | eger.prototype.lShiftTo.=.bnpLSh |
3e20 | 69 66 74 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 72 53 68 69 | iftTo;.BigInteger.prototype.rShi |
3e40 | 66 74 54 6f 20 3d 20 62 6e 70 52 53 68 69 66 74 54 6f 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 | ftTo.=.bnpRShiftTo;.BigInteger.p |
3e60 | 72 6f 74 6f 74 79 70 65 2e 73 75 62 54 6f 20 3d 20 62 6e 70 53 75 62 54 6f 3b 0a 42 69 67 49 6e | rototype.subTo.=.bnpSubTo;.BigIn |
3e80 | 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 75 6c 74 69 70 6c 79 54 6f 20 3d 20 62 6e 70 | teger.prototype.multiplyTo.=.bnp |
3ea0 | 4d 75 6c 74 69 70 6c 79 54 6f 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 | MultiplyTo;.BigInteger.prototype |
3ec0 | 2e 73 71 75 61 72 65 54 6f 20 3d 20 62 6e 70 53 71 75 61 72 65 54 6f 3b 0a 42 69 67 49 6e 74 65 | .squareTo.=.bnpSquareTo;.BigInte |
3ee0 | 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 64 69 76 52 65 6d 54 6f 20 3d 20 62 6e 70 44 69 76 52 | ger.prototype.divRemTo.=.bnpDivR |
3f00 | 65 6d 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 69 6e 76 44 69 | emTo;.BigInteger.prototype.invDi |
3f20 | 67 69 74 20 3d 20 62 6e 70 49 6e 76 44 69 67 69 74 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 | git.=.bnpInvDigit;.BigInteger.pr |
3f40 | 6f 74 6f 74 79 70 65 2e 69 73 45 76 65 6e 20 3d 20 62 6e 70 49 73 45 76 65 6e 3b 0a 42 69 67 49 | ototype.isEven.=.bnpIsEven;.BigI |
3f60 | 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 65 78 70 20 3d 20 62 6e 70 45 78 70 3b 0a 0a | nteger.prototype.exp.=.bnpExp;.. |
3f80 | 2f 2f 20 70 75 62 6c 69 63 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 74 | //.public.BigInteger.prototype.t |
3fa0 | 6f 53 74 72 69 6e 67 20 3d 20 62 6e 54 6f 53 74 72 69 6e 67 3b 0a 42 69 67 49 6e 74 65 67 65 72 | oString.=.bnToString;.BigInteger |
3fc0 | 2e 70 72 6f 74 6f 74 79 70 65 2e 6e 65 67 61 74 65 20 3d 20 62 6e 4e 65 67 61 74 65 3b 0a 42 69 | .prototype.negate.=.bnNegate;.Bi |
3fe0 | 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 61 62 73 20 3d 20 62 6e 41 62 73 3b 0a | gInteger.prototype.abs.=.bnAbs;. |
4000 | 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 63 6f 6d 70 61 72 65 54 6f 20 3d | BigInteger.prototype.compareTo.= |
4020 | 20 62 6e 43 6f 6d 70 61 72 65 54 6f 3b 0a 42 69 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 | .bnCompareTo;.BigInteger.prototy |
4040 | 70 65 2e 62 69 74 4c 65 6e 67 74 68 20 3d 20 62 6e 42 69 74 4c 65 6e 67 74 68 3b 0a 42 69 67 49 | pe.bitLength.=.bnBitLength;.BigI |
4060 | 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 6f 64 20 3d 20 62 6e 4d 6f 64 3b 0a 42 69 | nteger.prototype.mod.=.bnMod;.Bi |
4080 | 67 49 6e 74 65 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 6f 64 50 6f 77 49 6e 74 20 3d 20 62 | gInteger.prototype.modPowInt.=.b |
40a0 | 6e 4d 6f 64 50 6f 77 49 6e 74 3b 0a 0a 2f 2f 20 22 63 6f 6e 73 74 61 6e 74 73 22 0a 42 69 67 49 | nModPowInt;..//."constants".BigI |
40c0 | 6e 74 65 67 65 72 2e 5a 45 52 4f 20 3d 20 6e 62 76 28 30 29 3b 0a 42 69 67 49 6e 74 65 67 65 72 | nteger.ZERO.=.nbv(0);.BigInteger |
40e0 | 2e 4f 4e 45 20 3d 20 6e 62 76 28 31 29 3b 0a 22 0d 5f 76 65 72 73 69 6f 6e 22 25 39 66 33 62 39 | .ONE.=.nbv(1);."._version"%9f3b9 |
4100 | 35 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 | 5dd7ea3030dc35985c0a8020862".dep |
4120 | 65 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 | endency_paths[.{.".mtime".2012-0 |
4140 | 39 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 4b 2f 6f 6c 64 76 | 9-18T15:40:58+02:00".path"K/oldv |
4160 | 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 |
4180 | 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 2e 6a | ssets/javascripts/srp/lib/jsbn.j |
41a0 | 73 22 0b 64 69 67 65 73 74 22 25 34 64 66 34 66 34 34 31 37 61 65 61 33 34 35 38 66 31 35 66 33 | s".digest"%4df4f4417aea3458f15f3 |
41c0 | 37 32 62 32 37 38 37 38 36 32 35 22 13 72 65 71 75 69 72 65 64 5f 70 61 74 68 73 5b 06 22 4b 2f | 72b27878625".required_paths[."K/ |
41e0 | 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 |
4200 | 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 |
4220 | 62 6e 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 35 | bn.js".mtime".2012-09-18T15:40:5 |
4240 | 38 2b 30 32 3a 30 30 22 11 6c 6f 67 69 63 61 6c 5f 70 61 74 68 22 14 73 72 70 2f 6c 69 62 2f 6a | 8+02:00".logical_path".srp/lib/j |
4260 | 73 62 6e 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 11 63 | sbn.js".class".ProcessedAsset".c |
4280 | 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 63 72 | ontent_type".application/javascr |
42a0 | 69 70 74 22 0b 64 69 67 65 73 74 22 25 34 64 66 34 66 34 34 31 37 61 65 61 33 34 35 38 66 31 35 | ipt".digest"%4df4f4417aea3458f15 |
42c0 | 66 33 37 32 62 32 37 38 37 38 36 32 35 22 0d 70 61 74 68 6e 61 6d 65 22 4b 2f 6f 6c 64 76 61 72 | f372b27878625".pathname"K/oldvar |
42e0 | 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 73 | /src/leap/leap_web_users/app/ass |
4300 | 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 2e 6a 73 3a | ets/javascripts/srp/lib/jsbn.js: |
4320 | 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 | .@expires_in0:.@compressedF |