diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-12-10 17:26:15 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-12-10 17:26:15 -0800 |
commit | f59ffc338e2c1df792709a823be1c1d2735e88bf (patch) | |
tree | 7268bc264e4364f9766f1b137882870bf7b90569 | |
parent | 0162cc4bdc1955b442bec1a185d024d3d30cec0e (diff) | |
parent | 3a35fd9389a18707abd51dc71e2096c64413d510 (diff) |
Merge branch 'ta2bydefault'
-rw-r--r-- | src/intertyper.js | 9 | ||||
-rw-r--r-- | src/jsifier.js | 6 | ||||
-rw-r--r-- | src/library.js | 65 | ||||
-rw-r--r-- | src/modules.js | 31 | ||||
-rw-r--r-- | src/parseTools.js | 107 | ||||
-rw-r--r-- | src/preamble.js | 221 | ||||
-rw-r--r-- | src/runtime.js | 8 | ||||
-rw-r--r-- | src/settings.js | 30 | ||||
-rw-r--r-- | system/include/emscripten.h | 1 | ||||
-rw-r--r-- | system/include/libc/sys/_types.h | 4 | ||||
-rw-r--r-- | tests/bullet/output2.txt | 270 | ||||
-rw-r--r-- | tests/cases/aliasbitcast2.ll | 27 | ||||
-rw-r--r-- | tests/cases/aliasbitcast3.ll | 29 | ||||
-rw-r--r-- | tests/cases/i64toi8star.ll | 32 | ||||
-rw-r--r-- | tests/cases/i64toi8star.txt | 3 | ||||
-rw-r--r-- | tests/gl/sdl_ogl.c | 12 | ||||
-rw-r--r-- | tests/openjpeg/opj_config.h | 22 | ||||
-rw-r--r-- | tests/parseInt/output.txt | 24 | ||||
-rw-r--r-- | tests/printf/output_i64_1.txt | 8278 | ||||
-rw-r--r-- | tests/runner.py | 341 | ||||
-rw-r--r-- | tests/stat/src.c | 24 | ||||
-rw-r--r-- | tools/js-optimizer.js | 5 | ||||
-rw-r--r-- | tools/shared.py | 21 |
23 files changed, 9258 insertions, 312 deletions
diff --git a/src/intertyper.js b/src/intertyper.js index 19eb658e..f3d68ac4 100644 --- a/src/intertyper.js +++ b/src/intertyper.js @@ -123,6 +123,12 @@ function intertyper(data, sidePass, baseLineNums) { inFunction = false; if (mainPass) { var func = funcHeader.processItem(tokenizer.processItem({ lineText: currFunctionLines[0], lineNum: currFunctionLineNum }, true))[0]; + + if (SKIP_STACK_IN_SMALL && /emscripten_autodebug/.exec(func.ident)) { + warn('Disabling SKIP_STACK_IN_SMALL because we are apparently processing autodebugger data'); + SKIP_STACK_IN_SMALL = 0; + } + unparsedBundles.push({ intertype: 'unparsedFunction', // We need this early, to know basic function info - ident, params, varargs @@ -797,6 +803,9 @@ function intertyper(data, sidePass, baseLineNums) { var segments = splitTokenList(item.tokens.slice(1)); for (var i = 1; i <= 4; i++) { if (segments[i-1]) { + if (i > 1 && segments[i-1].length == 1 && segments[0].length > 1) { + segments[i-1].unshift(segments[0][0]); // Add the type from the first segment, they are all alike + } item['param'+i] = parseLLVMSegment(segments[i-1]); } } diff --git a/src/jsifier.js b/src/jsifier.js index a2ca03eb..b02164f6 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -341,7 +341,7 @@ function JSify(data, functionsOnly, givenFunctions) { var ret = [item]; item.JS = 'var ' + item.ident + ';'; // Set the actual value in a postset, since it may be a global variable. We also order by dependencies there - var value = finalizeLLVMParameter(item.value, true); // do *not* indexize functions here + var value = Variables.globals[item.ident].resolvedAlias = finalizeLLVMParameter(item.value); ret.push({ intertype: 'GlobalVariablePostSet', ident: item.ident, @@ -632,10 +632,6 @@ function JSify(data, functionsOnly, givenFunctions) { var local = funcData.variables[ident]; if (local) return local; var global = Variables.globals[ident]; - // FIXME: Currently, if something is an alias, we assume it is not a simple variable, so no need for - // FUNCTION_TABLE when calling it (which we do need for a normal simple global variable). In - // theory though an alias could be simple, we should probably check the type if this ever becomes a problem. - if (global && global.alias) global = null; return global || null; } diff --git a/src/library.js b/src/library.js index 1d296981..e1121c2f 100644 --- a/src/library.js +++ b/src/library.js @@ -706,9 +706,8 @@ LibraryManager.library = { mode = obj.link === undefined ? 0x8000 : 0xA000; // S_IFREG, S_IFLNK. } } - {{{ makeSetValue('buf', 'offsets.st_dev', makeI64('dev'), 'i64') }}}; - {{{ makeSetValue('buf', 'offsets.st_rdev', makeI64('rdev'), 'i64') }}}; - // NOTE: These two may be i64, depending on compilation options. + {{{ makeSetValue('buf', 'offsets.st_dev', 'dev', 'i32') }}}; + {{{ makeSetValue('buf', 'offsets.st_rdev', 'rdev', 'i32') }}}; {{{ makeSetValue('buf', 'offsets.st_size', 'size', 'i32') }}} {{{ makeSetValue('buf', 'offsets.st_blocks', 'blocks', 'i32') }}} if (obj.read) mode |= 0x16D; // S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH. @@ -3841,9 +3840,57 @@ LibraryManager.library = { return 0; }, - // Compiled from newlib; for the original source and licensing, see library_strtok_r.c XXX will not work with typed arrays - strtok_r: function(b,j,f){var a;a=null;var c,e;b=b;var i=b!=0;a:do if(i)a=0;else{b=HEAP[f];if(b!=0){a=0;break a}c=0;a=3;break a}while(0);if(a==0){a:for(;;){e=HEAP[b];b+=1;a=j;var g=e;i=a;a=2;b:for(;;){d=a==5?d:0;a=HEAP[i+d];if(a!=0==0){a=9;break a}var d=d+1;if(g==a)break b;else a=5}a=2}if(a==9)if(g==0)c=HEAP[f]=0;else{c=b+-1;a:for(;;){e=HEAP[b];b+=1;a=j;g=e;d=a;a=10;b:for(;;){h=a==13?h:0;a=HEAP[d+h];if(a==g!=0)break a;var h=h+1;if(a!=0)a=13;else break b}}if(e==0)b=0;else HEAP[b+-1]=0; HEAP[f]=b;c=c}else if(a==7){HEAP[f]=b;HEAP[b+-1]=0;c=b+-1}}return c}, - // TODO: Compile strtok() from source. + // Translated from newlib; for the original source and licensing, see library_strtok_r.c + strtok_r: function(s, delim, lasts) { + var skip_leading_delim = 1; + var spanp; + var c, sc; + var tok; + + + if (s == 0 && (s = getValue(lasts, 'i8*')) == 0) { + return 0; + } + + cont: while (1) { + c = getValue(s++, 'i8'); + for (spanp = delim; (sc = getValue(spanp++, 'i8')) != 0;) { + if (c == sc) { + if (skip_leading_delim) { + continue cont; + } else { + setValue(lasts, s, 'i8*'); + setValue(s - 1, 0, 'i8'); + return s - 1; + } + } + } + break; + } + + if (c == 0) { + setValue(lasts, 0, 'i8*'); + return 0; + } + tok = s - 1; + + for (;;) { + c = getValue(s++, 'i8'); + spanp = delim; + do { + if ((sc = getValue(spanp++, 'i8')) == c) { + if (c == 0) { + s = 0; + } else { + setValue(s - 1, 0, 'i8'); + } + setValue(lasts, s, 'i8*'); + return tok; + } + } while (sc != 0); + } + abort('strtok_r error!'); + }, strerror_r__deps: ['$ERRNO_CODES', '$ERRNO_MESSAGES', '__setErrNo'], strerror_r: function(errnum, strerrbuf, buflen) { @@ -5057,7 +5104,7 @@ LibraryManager.library = { // var indexes = Runtime.calculateStructAlignment({ fields: ['i32', 'i32'] }); var me = _localeconv; if (!me.ret) { - me.ret = allocate([allocate(intArrayFromString('.'), 'i8', ALLOC_NORMAL)], 'i8', ALLOC_NORMAL); // just decimal point, for now + me.ret = allocate([allocate(intArrayFromString('.'), 'i8', ALLOC_NORMAL)], 'i8*', ALLOC_NORMAL); // just decimal point, for now } return me.ret; }, @@ -5493,8 +5540,8 @@ LibraryManager.library = { eval(Pointer_stringify(ptr)); }, - _Z21emscripten_run_scriptPKc: function(ptr) { - eval(Pointer_stringify(ptr)); + emscripten_run_script_int: function(ptr) { + return eval(Pointer_stringify(ptr)); }, $Profiling: { diff --git a/src/modules.js b/src/modules.js index 3ce4a541..49f93e61 100644 --- a/src/modules.js +++ b/src/modules.js @@ -254,22 +254,37 @@ var Functions = { // All the function idents seen so far allIdents: [], - indexedFunctions: [0, 0], // Start at a non-0 (even, see below) value + indexedFunctions: {}, + nextIndex: 2, // Start at a non-0 (even, see below) value // Mark a function as needing indexing, and returns the index getIndex: function(ident) { - var key = this.indexedFunctions.indexOf(ident); - if (key < 0) { - key = this.indexedFunctions.length; - this.indexedFunctions[key] = ident; - this.indexedFunctions[key+1] = 0; // Need to have keys be even numbers, see |polymorph| test + var ret = this.indexedFunctions[ident]; + if (!ret) { + ret = this.nextIndex; + this.nextIndex += 2; // Need to have indexes be even numbers, see |polymorph| test + this.indexedFunctions[ident] = ret; } - return key.toString(); + return ret.toString(); }, // Generate code for function indexing generateIndexing: function() { - var indices = this.indexedFunctions.toString().replace('"', ''); + var vals = zeros(this.nextIndex); + for (var ident in this.indexedFunctions) { + vals[this.indexedFunctions[ident]] = ident; + } + + // Resolve multi-level aliases all the way down + for (var i = 0; i < vals.length; i++) { + while (1) { + var varData = Variables.globals[vals[i]]; + if (!(varData && varData.resolvedAlias)) break; + vals[i] = vals[varData.resolvedAlias]; + } + } + + var indices = vals.toString().replace('"', ''); if (BUILD_AS_SHARED_LIB) { // Shared libraries reuse the parent's function table. return 'FUNCTION_TABLE = FUNCTION_TABLE.concat([' + indices + ']);'; diff --git a/src/parseTools.js b/src/parseTools.js index 3eaf3577..024026c8 100644 --- a/src/parseTools.js +++ b/src/parseTools.js @@ -95,9 +95,9 @@ function toNiceIdentCarefully(ident) { // is true, then also allow () and spaces. function isNiceIdent(ident, loose) { if (loose) { - return /^[\w$_ ()]+$/.test(ident); + return /^\(?[$_]+[\w$_\d ]*\)?$/.test(ident); } else { - return /^[\w$_]+$/.test(ident); + return /^[$_]+[\w$_\d]*$/.test(ident); } } @@ -559,17 +559,23 @@ function makeInlineCalculation(expression, value, tempVar) { return '(' + expression.replace(/VALUE/g, value) + ')'; } -// Makes a proper runtime value for a 64-bit value from low and high i32s. +// Given two 32-bit unsigned parts of an emulated 64-bit number, combine them into a JS number (double). +// Rounding is inevitable if the number is large. This is a particular problem for small negative numbers +// (-1 will be rounded!), so handle negatives separately and carefully +function makeBigInt(low, high) { + // here VALUE will be the big part + return '(' + high + ' <= 2147483648 ? (' + makeSignOp(low, 'i32', 'un', 1, 1) + '+(' + makeSignOp(high, 'i32', 'un', 1, 1) + '*4294967296))' + + ' : (' + makeSignOp(low, 'i32', 're', 1, 1) + '+(1+' + makeSignOp(high, 'i32', 're', 1, 1) + ')*4294967296))'; +} + +// Makes a proper runtime value for a 64-bit value from low and high i32s. low and high are assumed to be unsigned. function makeI64(low, high) { + high = high || '0'; if (I64_MODE == 1) { - return '[' + low + ',' + (high || '0') + ']'; - // FIXME with this? return '[unSign(' + low + ',32),' + (high ? ('unSign(' + high + ',32)') : '0') + ']'; + return '[' + makeSignOp(low, 'i32', 'un', 1, 1) + ',' + makeSignOp(high, 'i32', 'un', 1, 1) + ']'; } else { - var ret = low; - if (high) { - ret = '(' + low + '+(4294967296*' + high + '))'; - } - return ret; + if (high) return makeBigInt(low, high); + return low; } } @@ -577,24 +583,25 @@ function makeI64(low, high) { // Will suffer from rounding. margeI64 does the opposite. // TODO: optimize I64 calcs. For example, saving their parts as signed 32 as opposed to unsigned would help function splitI64(value) { - assert(I64_MODE == 1); - return makeInlineCalculation(makeI64('VALUE>>>0', 'Math.floor(VALUE/4294967296)'), value, 'tempBigInt'); + // We need to min here, since our input might be a double, and large values are rounded, so they can + // be slightly higher than expected. And if we get 4294967296, that will turn into a 0 if put into a + // HEAP32 or |0'd, etc. + return makeInlineCalculation(makeI64('VALUE>>>0', 'Math.min(Math.floor(VALUE/4294967296), 4294967295)'), value, 'tempBigIntP'); } function mergeI64(value) { assert(I64_MODE == 1); - return '(tempI64=' + value + ',tempI64[0]+tempI64[1]*4294967296)'; + return makeInlineCalculation(makeBigInt('VALUE[0]', 'VALUE[1]'), value, 'tempI64'); } // Takes an i64 value and changes it into the [low, high] form used in i64 mode 1. In that // mode, this is a no-op function ensureI64_1(value) { if (I64_MODE == 1) return value; - return makeInlineCalculation('[VALUE>>>0, Math.floor(VALUE/4294967296)]', value, 'tempBigInt'); + return splitI64(value, 1); } function makeCopyI64(value) { assert(I64_MODE == 1); - return value + '.slice(0)'; } @@ -889,7 +896,7 @@ function getHeapOffset(offset, type) { } // See makeSetValue -function makeGetValue(ptr, pos, type, noNeedFirst, unsigned, ignore, align) { +function makeGetValue(ptr, pos, type, noNeedFirst, unsigned, ignore, align, noSafe) { if (isStructType(type)) { var typeData = Types.types[type]; var ret = []; @@ -899,6 +906,12 @@ function makeGetValue(ptr, pos, type, noNeedFirst, unsigned, ignore, align) { return '{ ' + ret.join(', ') + ' }'; } + if (DOUBLE_MODE == 1 && USE_TYPED_ARRAYS == 2 && type == 'double') { + return '(tempDoubleI32[0]=' + makeGetValue(ptr, pos, 'i32', noNeedFirst, unsigned, ignore, align) + ',' + + 'tempDoubleI32[1]=' + makeGetValue(ptr, getFastValue(pos, '+', Runtime.getNativeTypeSize('i32')), 'i32', noNeedFirst, unsigned, ignore, align) + ',' + + 'tempDoubleF64[0])'; + } + if (EMULATE_UNALIGNED_ACCESSES && USE_TYPED_ARRAYS == 2 && align && isIntImplemented(type)) { // TODO: support unaligned doubles and floats // Alignment is important here. May need to split this up var bytes = Runtime.getNativeTypeSize(type); @@ -923,12 +936,12 @@ function makeGetValue(ptr, pos, type, noNeedFirst, unsigned, ignore, align) { } if (type == 'i64' && I64_MODE == 1) { - return '[' + makeGetValue(ptr, pos, 'i32', noNeedFirst, unsigned, ignore) + ',' - + makeGetValue(ptr, getFastValue(pos, '+', Runtime.getNativeTypeSize('i32')), 'i32', noNeedFirst, unsigned, ignore) + ']'; + return '[' + makeGetValue(ptr, pos, 'i32', noNeedFirst, 1, ignore) + ',' + + makeGetValue(ptr, getFastValue(pos, '+', Runtime.getNativeTypeSize('i32')), 'i32', noNeedFirst, 1, ignore) + ']'; } var offset = calcFastOffset(ptr, pos, noNeedFirst); - if (SAFE_HEAP) { + if (SAFE_HEAP && !noSafe) { if (type !== 'null' && type[0] !== '#') type = '"' + safeQuote(type) + '"'; if (type[0] === '#') type = type.substr(1); return 'SAFE_HEAP_LOAD(' + offset + ', ' + type + ', ' + (!!unsigned+0) + ', ' + ((!checkSafeHeap() || ignore)|0) + ')'; @@ -938,8 +951,8 @@ function makeGetValue(ptr, pos, type, noNeedFirst, unsigned, ignore, align) { } function indexizeFunctions(value, type) { - assert((type && type !== '?') || (typeof value === 'string' && value.substr(0, 6) === 'CHECK_'), 'No type given for function indexizing: ' + [value, type]); - assert(value !== type, 'Type set to value: ' + [value, type]); + assert((type && type !== '?') || (typeof value === 'string' && value.substr(0, 6) === 'CHECK_'), 'No type given for function indexizing'); + assert(value !== type, 'Type set to value'); if (type && isFunctionType(type) && value[0] === '_') { // checking for _ differentiates from $ (local vars) if (BUILD_AS_SHARED_LIB) { return '(FUNCTION_TABLE_OFFSET + ' + Functions.getIndex(value) + ')'; @@ -960,7 +973,7 @@ function indexizeFunctions(value, type) { //! 'null' means, in the context of SAFE_HEAP, that we should accept all types; //! which means we should write to all slabs, ignore type differences if any on reads, etc. //! @param noNeedFirst Whether to ignore the offset in the pointer itself. -function makeSetValue(ptr, pos, value, type, noNeedFirst, ignore, align) { +function makeSetValue(ptr, pos, value, type, noNeedFirst, ignore, align, noSafe) { if (isStructType(type)) { var typeData = Types.types[type]; var ret = []; @@ -975,6 +988,12 @@ function makeSetValue(ptr, pos, value, type, noNeedFirst, ignore, align) { return ret.join('; '); } + if (DOUBLE_MODE == 1 && USE_TYPED_ARRAYS == 2 && type == 'double') { + return '(tempDoubleF64[0]=' + value + ',' + + makeSetValue(ptr, pos, 'tempDoubleI32[0]', 'i32', noNeedFirst, ignore, align) + ',' + + makeSetValue(ptr, getFastValue(pos, '+', Runtime.getNativeTypeSize('i32')), 'tempDoubleI32[1]', 'i32', noNeedFirst, ignore, align) + ')'; + } + if (EMULATE_UNALIGNED_ACCESSES && USE_TYPED_ARRAYS == 2 && align && isIntImplemented(type)) { // TODO: support unaligned doubles and floats // Alignment is important here. May need to split this up var bytes = Runtime.getNativeTypeSize(type); @@ -1003,7 +1022,7 @@ function makeSetValue(ptr, pos, value, type, noNeedFirst, ignore, align) { value = indexizeFunctions(value, type); var offset = calcFastOffset(ptr, pos, noNeedFirst); - if (SAFE_HEAP) { + if (SAFE_HEAP && !noSafe) { if (type !== 'null' && type[0] !== '#') type = '"' + safeQuote(type) + '"'; if (type[0] === '#') type = type.substr(1); return 'SAFE_HEAP_STORE(' + offset + ', ' + value + ', ' + type + ', ' + ((!checkSafeHeap() || ignore)|0) + ')'; @@ -1219,7 +1238,7 @@ function makeGetPos(ptr) { return ptr; } -var IHEAP_FHEAP = set('IHEAP', 'FHEAP'); +var IHEAP_FHEAP = set('IHEAP', 'IHEAPU', 'FHEAP'); function makePointer(slab, pos, allocator, type) { assert(type, 'makePointer requires type info'); @@ -1259,7 +1278,7 @@ function makeGetSlabs(ptr, type, allowMultiple, unsigned) { if (type in Runtime.FLOAT_TYPES || type === 'int64') { // XXX should be i64, no? return ['FHEAP']; // If USE_FHEAP is false, will fail at runtime. At compiletime we do need it for library stuff. } else if (type in Runtime.INT_TYPES || isPointerType(type)) { - return ['IHEAP']; + return [unsigned ? 'IHEAPU' : 'IHEAP']; } else { assert(allowMultiple, 'Unknown slab type and !allowMultiple: ' + type); if (USE_FHEAP) { @@ -1320,10 +1339,7 @@ function finalizeLLVMFunctionCall(item, noIndexizeFunctions) { // from one file to another, would be enough to fix this), or, do not pass structs by value (which in general // is inefficient, and worth avoiding if you can). } - case 'inttoptr': - case 'ptrtoint': - return finalizeLLVMParameter(item.params[0], noIndexizeFunctions); - case 'icmp': case 'mul': case 'zext': case 'add': case 'sub': case 'div': + case 'icmp': case 'mul': case 'zext': case 'add': case 'sub': case 'div': case 'inttoptr': case 'ptrtoint': var temp = { op: item.intertype, variant: item.variant, @@ -1457,10 +1473,9 @@ function finalizeLLVMParameter(param, noIndexizeFunctions) { return ret; } -function makeSignOp(value, type, op, force) { - // XXX this is not quite right. both parts should always be unsigned (or, perhaps always signed, we should move to that - separate issue though) +function makeSignOp(value, type, op, force, ignore) { if (I64_MODE == 1 && type == 'i64') { - return '(tempPair=' + value + ',[' + makeSignOp('tempPair[0]', 'i32', op, force) + ',' + makeSignOp('tempPair[1]', 'i32', op, force) + '])'; + return value; // these are always assumed to be two 32-bit unsigneds. } if (isPointerType(type)) type = 'i32'; // Pointers are treated as 32-bit ints @@ -1469,7 +1484,7 @@ function makeSignOp(value, type, op, force) { if (type in Runtime.INT_TYPES) { bits = parseInt(type.substr(1)); full = op + 'Sign(' + value + ', ' + bits + ', ' + Math.floor(correctSpecificSign() && !PGO) + ( - PGO ? ', "' + Debugging.getIdentifier() + '"' : '' + PGO ? ', "' + (ignore ? '' : Debugging.getIdentifier()) + '"' : '' ) + ')'; // Always sign/unsign constants at compile time, regardless of CHECK/CORRECT if (isNumber(value)) { @@ -1479,7 +1494,7 @@ function makeSignOp(value, type, op, force) { if (!correctSigns() && !CHECK_SIGNS && !force) return value; if (type in Runtime.INT_TYPES) { // shortcuts - if (!CHECK_SIGNS) { + if (!CHECK_SIGNS || ignore) { if (bits === 32) { if (op === 're') { return '((' + value + ')|0)'; @@ -1497,9 +1512,9 @@ function makeSignOp(value, type, op, force) { } } else { // bits > 32 if (op === 're') { - return makeInlineCalculation('VALUE >= ' + Math.pow(2, bits-1) + ' ? VALUE-' + Math.pow(2, bits) + ' : VALUE', value, 'tempBigInt'); + return makeInlineCalculation('VALUE >= ' + Math.pow(2, bits-1) + ' ? VALUE-' + Math.pow(2, bits) + ' : VALUE', value, 'tempBigIntS'); } else { - return makeInlineCalculation('VALUE >= 0 ? VALUE : ' + Math.pow(2, bits) + '+VALUE', value, 'tempBigInt'); + return makeInlineCalculation('VALUE >= 0 ? VALUE : ' + Math.pow(2, bits) + '+VALUE', value, 'tempBigIntS'); } } } @@ -1524,7 +1539,7 @@ function makeRounding(value, bits, signed, floatConversion) { // Note that if converting a float, we may have the wrong sign at this point! But, we have // been rounded properly regardless, and we will be sign-corrected later when actually used, if // necessary. - return makeInlineCalculation('VALUE >= 0 ? Math.floor(VALUE) : Math.ceil(VALUE)', value, 'tempBigInt'); + return makeInlineCalculation('VALUE >= 0 ? Math.floor(VALUE) : Math.ceil(VALUE)', value, 'tempBigIntR'); } // fptoui and fptosi are not in these, because we need to be careful about what we do there. We can't @@ -1571,10 +1586,10 @@ function processMathop(item) { if (item.type[0] === 'i') { bits = parseInt(item.type.substr(1)); } - var bitsLeft = ident2 ? ident2.substr(2, ident2.length-3) : null; // remove (i and ), to leave number. This value is important in float ops + var bitsLeft = item.param2 ? item.param2.ident.substr(1) : null; // remove i to leave number. This value is important in float ops function integerizeBignum(value) { - return makeInlineCalculation('VALUE-VALUE%1', value, 'tempBigInt'); + return makeInlineCalculation('VALUE-VALUE%1', value, 'tempBigIntI'); } if ((type == 'i64' || paramTypes[0] == 'i64' || paramTypes[1] == 'i64' || ident2 == '(i64)') && I64_MODE == 1) { @@ -1594,14 +1609,14 @@ function processMathop(item) { } case 'shl': { return '[' + ident1 + '[0] << ' + ident2 + ', ' + - '('+ident1 + '[1] << ' + ident2 + ') | ((' + ident1 + '[0]&((Math.pow(2, ' + ident2 + ')-1)<<(32-' + ident2 + '))) >> (32-' + ident2 + '))]'; + '('+ident1 + '[1] << ' + ident2 + ') | ((' + ident1 + '[0]&((Math.pow(2, ' + ident2 + ')-1)<<(32-' + ident2 + '))) >>> (32-' + ident2 + '))]'; } case 'ashr': { - return '[('+ident1 + '[0] >> ' + ident2 + ') | ((' + ident1 + '[1]&((Math.pow(2, ' + ident2 + ')-1)<<(32-' + ident2 + '))) >> (32-' + ident2 + ')),' + - ident1 + '[1] >> ' + ident2 + ']'; + return '[('+ident1 + '[0] >>> ' + ident2 + ') | ((' + ident1 + '[1]&(Math.pow(2, ' + ident2 + ')-1))<<(32-' + ident2 + ')),' + + ident1 + '[1] >>> ' + ident2 + ']'; } case 'lshr': { - return '[('+ident1 + '[0] >>> ' + ident2 + ') | ((' + ident1 + '[1]&((Math.pow(2, ' + ident2 + ')-1)<<(32-' + ident2 + '))) >> (32-' + ident2 + ')),' + + return '[('+ident1 + '[0] >>> ' + ident2 + ') | ((' + ident1 + '[1]&(Math.pow(2, ' + ident2 + ')-1))<<(32-' + ident2 + ')),' + ident1 + '[1] >>> ' + ident2 + ']'; } case 'uitofp': case 'sitofp': return ident1 + '[0] + ' + ident1 + '[1]*4294967296'; @@ -1632,12 +1647,13 @@ function processMathop(item) { } } case 'zext': return makeI64(ident1, 0); - case 'sext': return makeInlineCalculation(makeI64('VALUE', 'VALUE<0 ? 4294967295 : 0'), ident1, 'tempBigInt'); + case 'sext': return makeInlineCalculation(makeI64('VALUE', 'VALUE<0 ? 4294967295 : 0'), ident1, 'tempBigIntD'); case 'trunc': { return '((' + ident1 + '[0]) & ' + (Math.pow(2, bitsLeft)-1) + ')'; } case 'select': return ident1 + ' ? ' + makeCopyI64(ident2) + ' : ' + makeCopyI64(ident3); - case 'ptrtoint': case 'inttoptr': throw 'Pointers cannot be 64-bit!'; + case 'ptrtoint': throw 'Pointers cannot be 64-bit!'; + case 'inttoptr': return '(' + ident1 + '[0])'; // just directly truncate the i64 to a 'pointer', which is an i32 // Dangerous, rounded operations. TODO: Fully emulate case 'add': warnI64_1(); return handleOverflow(splitI64(mergeI64(ident1) + '+' + mergeI64(ident2)), bits); case 'sub': warnI64_1(); return handleOverflow(splitI64(mergeI64(ident1) + '-' + mergeI64(ident2)), bits); @@ -1772,6 +1788,7 @@ function processMathop(item) { } return ident1 + ret; } + case 'bitcast': return ident1; default: throw 'Unknown mathcmp op: ' + item.op; } } diff --git a/src/preamble.js b/src/preamble.js index 3fcdf1f8..a6556095 100644 --- a/src/preamble.js +++ b/src/preamble.js @@ -86,93 +86,50 @@ function SAFE_HEAP_STORE(dest, value, type, ignore) { print((new Error()).stack); throw "Bad store!" + dest; } -#if USE_TYPED_ARRAYS == 1 - if (type === null) { - IHEAP[dest] = value; -#if USE_FHEAP - FHEAP[dest] = value; -#endif - } else if (type in Runtime.FLOAT_TYPES) { - FHEAP[dest] = value; - } else { - IHEAP[dest] = value; - } -#else + #if USE_TYPED_ARRAYS == 2 - assert(type != 'null', 'typed arrays 2 with null type!'); - if (type[type.length-1] === '*') type = 'i32'; // hardcoded pointers as 32-bit + // Check alignment switch(type) { - case 'i1': case 'i8': HEAP8[dest] = value; break; - case 'i16': assert(dest % 2 === 0, type + ' stores must be aligned: ' + dest); HEAP16[dest>>1] = value; break; - case 'i32': assert(dest % 4 === 0, type + ' stores must be aligned: ' + dest); HEAP32[dest>>2] = value; break; - case 'i64': assert(dest % 4 === 0, type + ' stores must be aligned: ' + dest); warn64(); HEAP32[dest>>2] = value; break; // XXX store int64 as int32 - case 'float': assert(dest % 4 === 0, type + ' stores must be aligned: ' + dest); HEAPF32[dest>>2] = value; break; - case 'double': assert(dest % 4 === 0, type + ' stores must be aligned: ' + dest); warn64(); HEAPF32[dest>>2] = value; break; // XXX store doubles as floats - default: throw 'weird type for typed array II: ' + type + new Error().stack; - } + case 'i16': assert(dest % 2 == 0); break; + case 'i32': assert(dest % 4 == 0); break; + case 'i64': assert(dest % 8 == 0); break; + case 'float': assert(dest % 4 == 0); break; +#if DOUBLE_MODE == 1 + case 'double': assert(dest % 4 == 0); break; #else - HEAP[dest] = value; + case 'double': assert(dest % 4 == 0); warn64(); break; #endif + } #endif + + setValue(dest, value, type, 1); } function SAFE_HEAP_LOAD(dest, type, unsigned, ignore) { SAFE_HEAP_ACCESS(dest, type, ignore); -#if USE_TYPED_ARRAYS == 1 - if (type in Runtime.FLOAT_TYPES) { #if SAFE_HEAP_LOG - print('SAFE_HEAP load: ' + [dest, type, FHEAP[dest], ignore]); + print('SAFE_HEAP load: ' + [dest, type, getValue(dest, type, 1), ignore]); #endif - return FHEAP[dest]; - } else { -#if SAFE_HEAP_LOG - print('SAFE_HEAP load: ' + [dest, type, IHEAP[dest], ignore]); -#endif - return IHEAP[dest]; - } -#else + #if USE_TYPED_ARRAYS == 2 -#if SAFE_HEAP_LOG - var originalType = type; -#endif - var ret; - if (type[type.length-1] === '*') type = 'i32'; // hardcoded pointers as 32-bit + // Check alignment switch(type) { - case 'i1': case 'i8': { - ret = (unsigned ? HEAPU8 : HEAP8)[dest]; - break; - } - case 'i16': { - assert(dest % 2 === 0, type + ' loads must be aligned: ' + dest); - ret = (unsigned ? HEAPU16 : HEAP16)[dest>>1]; - break; - } - case 'i32': case 'i64': { // XXX store int64 as int32 - assert(dest % 4 === 0, type + ' loads must be aligned: ' + dest); - if (type === 'i64') warn64(); - ret = (unsigned ? HEAPU32 : HEAP32)[dest>>2]; - break; - } - case 'float': case 'double': { // XXX store doubles as floats - assert(dest % 4 === 0, type + ' loads must be aligned: ' + dest); - if (type === 'double') warn64(); - ret = HEAPF32[dest>>2]; - break; - } - default: throw 'weird type for typed array II: ' + type; - } -#if SAFE_HEAP_LOG - print('SAFE_HEAP load: ' + [dest, originalType, ret, unsigned, ignore]); -#endif - return ret; + case 'i16': assert(dest % 2 == 0); break; + case 'i32': assert(dest % 4 == 0); break; + case 'i64': assert(dest % 8 == 0); break; + case 'float': assert(dest % 4 == 0); break; +#if DOUBLE_MODE == 1 + case 'double': assert(dest % 4 == 0); break; #else -#if SAFE_HEAP_LOG - print('SAFE_HEAP load: ' + [dest, type, HEAP[dest], ignore]); -#endif - return HEAP[dest]; + case 'double': assert(dest % 4 == 0); warn64(); break; #endif + } #endif + + var ret = getValue(dest, type, 1); + if (unsigned) ret = unSign(ret, parseInt(type.substr(1)), 1); + return ret; } function SAFE_HEAP_COPY_HISTORY(dest, src) { @@ -377,10 +334,17 @@ var ABORT = false; var undef = 0; // tempInt is used for 32-bit signed values or smaller. tempBigInt is used // for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt -var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair; +var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD; #if I64_MODE == 1 var tempI64, tempI64b; #endif +#if DOUBLE_MODE == 1 +#if USE_TYPED_ARRAYS == 2 +var tempDoubleBuffer = new ArrayBuffer(8); +var tempDoubleI32 = new Int32Array(tempDoubleBuffer); +var tempDoubleF64 = new Float64Array(tempDoubleBuffer); +#endif +#endif function abort(text) { print(text + ':\n' + (new Error).stack); @@ -400,35 +364,71 @@ function assert(condition, text) { // code then, whereas this function picks the right code at // run-time. -function setValue(ptr, value, type) { +function setValue(ptr, value, type, noSafe) { + type = type || 'i8'; if (type[type.length-1] === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': {{{ makeSetValue('ptr', '0', 'value', 'i1') }}}; break; - case 'i8': {{{ makeSetValue('ptr', '0', 'value', 'i8') }}}; break; - case 'i16': {{{ makeSetValue('ptr', '0', 'value', 'i16') }}}; break; - case 'i32': {{{ makeSetValue('ptr', '0', 'value', 'i32') }}}; break; - case 'i64': {{{ makeSetValue('ptr', '0', 'value', 'i64') }}}; break; - case 'float': {{{ makeSetValue('ptr', '0', 'value', 'float') }}}; break; - case 'double': {{{ makeSetValue('ptr', '0', 'value', 'double') }}}; break; - default: abort('invalid type for setValue: ' + type); +#if SAFE_HEAP + if (noSafe) { + switch(type) { + case 'i1': {{{ makeSetValue('ptr', '0', 'value', 'i1', undefined, undefined, undefined, '1') }}}; break; + case 'i8': {{{ makeSetValue('ptr', '0', 'value', 'i8', undefined, undefined, undefined, '1') }}}; break; + case 'i16': {{{ makeSetValue('ptr', '0', 'value', 'i16', undefined, undefined, undefined, '1') }}}; break; + case 'i32': {{{ makeSetValue('ptr', '0', 'value', 'i32', undefined, undefined, undefined, '1') }}}; break; + case 'i64': {{{ makeSetValue('ptr', '0', 'value', 'i64', undefined, undefined, undefined, '1') }}}; break; + case 'float': {{{ makeSetValue('ptr', '0', 'value', 'float', undefined, undefined, undefined, '1') }}}; break; + case 'double': {{{ makeSetValue('ptr', '0', 'value', 'double', undefined, undefined, undefined, '1') }}}; break; + default: abort('invalid type for setValue: ' + type); + } + } else { +#endif + switch(type) { + case 'i1': {{{ makeSetValue('ptr', '0', 'value', 'i1') }}}; break; + case 'i8': {{{ makeSetValue('ptr', '0', 'value', 'i8') }}}; break; + case 'i16': {{{ makeSetValue('ptr', '0', 'value', 'i16') }}}; break; + case 'i32': {{{ makeSetValue('ptr', '0', 'value', 'i32') }}}; break; + case 'i64': {{{ makeSetValue('ptr', '0', 'value', 'i64') }}}; break; + case 'float': {{{ makeSetValue('ptr', '0', 'value', 'float') }}}; break; + case 'double': {{{ makeSetValue('ptr', '0', 'value', 'double') }}}; break; + default: abort('invalid type for setValue: ' + type); + } +#if SAFE_HEAP } +#endif } Module['setValue'] = setValue; // Parallel to setValue. -function getValue(ptr, type) { +function getValue(ptr, type, noSafe) { + type = type || 'i8'; if (type[type.length-1] === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': return {{{ makeGetValue('ptr', '0', 'i1') }}}; - case 'i8': return {{{ makeGetValue('ptr', '0', 'i8') }}}; - case 'i16': return {{{ makeGetValue('ptr', '0', 'i16') }}}; - case 'i32': return {{{ makeGetValue('ptr', '0', 'i32') }}}; - case 'i64': return {{{ makeGetValue('ptr', '0', 'i64') }}}; - case 'float': return {{{ makeGetValue('ptr', '0', 'float') }}}; - case 'double': return {{{ makeGetValue('ptr', '0', 'double') }}}; - default: abort('invalid type for setValue: ' + type); +#if SAFE_HEAP + if (noSafe) { + switch(type) { + case 'i1': return {{{ makeGetValue('ptr', '0', 'i1', undefined, undefined, undefined, undefined, '1') }}}; + case 'i8': return {{{ makeGetValue('ptr', '0', 'i8', undefined, undefined, undefined, undefined, '1') }}}; + case 'i16': return {{{ makeGetValue('ptr', '0', 'i16', undefined, undefined, undefined, undefined, '1') }}}; + case 'i32': return {{{ makeGetValue('ptr', '0', 'i32', undefined, undefined, undefined, undefined, '1') }}}; + case 'i64': return {{{ makeGetValue('ptr', '0', 'i64', undefined, undefined, undefined, undefined, '1') }}}; + case 'float': return {{{ makeGetValue('ptr', '0', 'float', undefined, undefined, undefined, undefined, '1') }}}; + case 'double': return {{{ makeGetValue('ptr', '0', 'double', undefined, undefined, undefined, undefined, '1') }}}; + default: abort('invalid type for setValue: ' + type); + } + } else { +#endif + switch(type) { + case 'i1': return {{{ makeGetValue('ptr', '0', 'i1') }}}; + case 'i8': return {{{ makeGetValue('ptr', '0', 'i8') }}}; + case 'i16': return {{{ makeGetValue('ptr', '0', 'i16') }}}; + case 'i32': return {{{ makeGetValue('ptr', '0', 'i32') }}}; + case 'i64': return {{{ makeGetValue('ptr', '0', 'i64') }}}; + case 'float': return {{{ makeGetValue('ptr', '0', 'float') }}}; + case 'double': return {{{ makeGetValue('ptr', '0', 'double') }}}; + default: abort('invalid type for setValue: ' + type); + } +#if SAFE_HEAP } +#endif return null; } Module['getValue'] = getValue; @@ -521,7 +521,7 @@ function alignMemoryPage(x) { var HEAP; #if USE_TYPED_ARRAYS == 1 -var IHEAP; +var IHEAP, IHEAPU; #if USE_FHEAP var FHEAP; #endif @@ -532,6 +532,42 @@ var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32; var STACK_ROOT, STACKTOP, STACK_MAX; var STATICTOP; +#if USE_TYPED_ARRAYS +var LAST_STATICTOP; +function enlargeMemory() { + // LAST_STATICTOP is the previous top, TOTAL_MEMORY is the current size of the actual array, and STATICTOP is the new top. +#if ASSERTIONS + assert(STATICTOP >= TOTAL_MEMORY && LAST_STATICTOP < TOTAL_MEMORY); + assert(TOTAL_MEMORY > 4); // So the loop below will not be infinite +#endif + while (TOTAL_MEMORY <= STATICTOP) { // Simple heuristic. Override enlargeMemory() if your program has something more optimal for it + TOTAL_MEMORY = alignMemoryPage(TOTAL_MEMORY*1.25); + } +#if USE_TYPED_ARRAYS == 1 + var oldIHEAP = IHEAP; + HEAP = IHEAP = new Int32Array(TOTAL_MEMORY); + IHEAP.set(oldIHEAP); + IHEAPU = new Uint32Array(IHEAP.buffer); +#if USE_FHEAP + var oldFHEAP = FHEAP; + FHEAP = new Float64Array(TOTAL_MEMORY); + FHEAP.set(oldFHEAP); +#endif +#endif +#if USE_TYPED_ARRAYS == 2 + var oldHEAP8 = HEAP8; + var buffer = new ArrayBuffer(TOTAL_MEMORY); + HEAP8 = new Int8Array(buffer); + HEAP16 = new Int16Array(buffer); + HEAP32 = new Int32Array(buffer); + HEAPU8 = new Uint8Array(buffer); + HEAPU16 = new Uint16Array(buffer); + HEAPU32 = new Uint32Array(buffer); + HEAPF32 = new Float32Array(buffer); + HEAP8.set(oldHEAP8); +#endif +} +#endif var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || {{{ TOTAL_MEMORY }}}; var FAST_MEMORY = Module['FAST_MEMORY'] || {{{ FAST_MEMORY }}}; @@ -544,6 +580,7 @@ var FAST_MEMORY = Module['FAST_MEMORY'] || {{{ FAST_MEMORY }}}; #if USE_TYPED_ARRAYS == 1 HEAP = IHEAP = new Int32Array(TOTAL_MEMORY); + IHEAPU = new Uint32Array(IHEAP.buffer); #if USE_FHEAP FHEAP = new Float64Array(TOTAL_MEMORY); #endif diff --git a/src/runtime.js b/src/runtime.js index a6261c74..0b36f967 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -56,7 +56,11 @@ var RuntimeGenerator = { // An allocation that cannot be free'd staticAlloc: function(size) { - return RuntimeGenerator.alloc(size, 'STATIC', INIT_HEAP); + var ret = ''; + if (USE_TYPED_ARRAYS) ret += 'LAST_STATICTOP = STATICTOP;' + ret += RuntimeGenerator.alloc(size, 'STATIC', INIT_HEAP); + if (USE_TYPED_ARRAYS) ret += '; if (STATICTOP >= TOTAL_MEMORY) enlargeMemory();' + return ret; }, alignMemory: function(target, quantum) { @@ -301,6 +305,8 @@ function reSign(value, bits, ignore, sig) { var noted = false; #endif if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that + // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors + // TODO: In i64 mode 1, resign the two parts separately and safely #if CHECK_SIGNS if (!ignore) { CorrectionsMonitor.note('ReSign', 0, sig); diff --git a/src/settings.js b/src/settings.js index 0964d4bb..1e041508 100644 --- a/src/settings.js +++ b/src/settings.js @@ -29,19 +29,18 @@ var ASSERTIONS = 1; // Whether we should add runtime assertions, for example to var INVOKE_RUN = 1; // Whether we will call run(). Disable if you embed the generated // code in your own, and will call run() yourself at the right time -var INIT_STACK = 1; // Whether to initialize memory on the stack to 0. +var INIT_STACK = 0; // Whether to initialize memory on the stack to 0. var INIT_HEAP = 0; // Whether to initialize memory anywhere other than the stack to 0. var FAST_MEMORY = 2*1024*1024; // The amount of memory to initialize to 0. This ensures it will be // in a flat array. This only matters in non-typed array builds. -var TOTAL_MEMORY = 50*1024*1024; // The total amount of memory to use. This mainly matters in - // typed array builds - accessing memory about this value will - // return undefined values and lead to serious problems, and there - // is currently no warning about that! +var TOTAL_MEMORY = 10*1024*1024; // The total amount of memory to use. Using more memory than this will + // cause us to expand the heap, which can be costly with typed arrays: + // we need to copy the old heap into a new one in that case. // Code embetterments -var MICRO_OPTS = 0; // Various micro-optimizations, like nativizing variables +var MICRO_OPTS = 1; // Various micro-optimizations, like nativizing variables var RELOOP = 0; // Recreate js native loops from llvm data -var USE_TYPED_ARRAYS = 0; // Try to use typed arrays for the heap +var USE_TYPED_ARRAYS = 2; // Use typed arrays for the heap // 1 has two heaps, IHEAP (int32) and FHEAP (double), // and addresses there are a match for normal addresses. This wastes memory but can be fast. // 2 is a single heap, accessible through views as int8, int32, etc. This saves memory but @@ -52,12 +51,24 @@ var USE_TYPED_ARRAYS = 0; // Try to use typed arrays for the heap // TODO: require compiling with -malign-double, which does align doubles var USE_FHEAP = 1; // Relevant in USE_TYPED_ARRAYS == 1. If this is disabled, only IHEAP will be used, and FHEAP // not generated at all. This is useful if your code is 100% ints without floats or doubles -var I64_MODE = 0; // How to implement 64-bit integers: +var I64_MODE = 1; // How to implement 64-bit integers: // 0: As doubles. This will work up to about 53 bits. // 1: As [low, high]. This will support all 64 bits for bit ops, etc. properly, but will still // use doubles for addition etc., like mode 0. This mode is slower than // mode 0, so its only benefit is proper support for 64 bit bitops. // TODO: Full bignum support +var DOUBLE_MODE = 1; // How to load and store 64-bit doubles. Without typed arrays or in typed array mode 1, + // this doesn't matter - these values are just values like any other. In typed array mode 2, + // a potentialy risk is that doubles may be only 32-bit aligned. Forcing 64-bit alignment + // in Clang itself should be able to solve that, or as a workaround in DOUBLE_MODE 1 we + // will carefully load in parts, in a way that requires only 32-bit alignment. In DOUBLE_MODE + // 0 we will simply store and load doubles as 32-bit floats, so when they are stored/loaded + // they will truncate from 64 to 32 bits, and lose precision. This is faster, and might + // work for some code (but probably that code should just use floats and not doubles anyhow). + // Note that a downside of DOUBLE_MODE 1 is that we currently store the double in parts, + // then load it aligned, and that load-store will make JS engines alter it if it is being + // stored to a typed array for security reasons. That will 'fix' the number from being a + // NaN or an infinite number. var EMULATE_UNALIGNED_ACCESSES = 1; // If set, the compiler will 'emulate' loads and stores that are not known to // be sufficiently aligned, by working on individual bytes. This can be // important in USE_TYPED_ARRAYS == 2, where unaligned accesses do not work, @@ -74,7 +85,8 @@ var SKIP_STACK_IN_SMALL = 1; // When enabled, does not push/pop the stack at all // may allocate stack later, and in a loop, this can be // very bad. In particular, when debugging, printf()ing // a lot can exhaust the stack very fast, with this option. - // In particular, be careful with the autodebugger! + // In particular, be careful with the autodebugger! (We do turn + // this off automatically in that case, though.) var INLINE_LIBRARY_FUNCS = 1; // Will inline library functions that have __inline defined var CLOSURE_INLINE_PREVENTION_LINES = 50; // Functions of this number of lines or larger will have // code generated that tells the closure compiler not to diff --git a/system/include/emscripten.h b/system/include/emscripten.h index 482f7ef3..7b135c5a 100644 --- a/system/include/emscripten.h +++ b/system/include/emscripten.h @@ -16,6 +16,7 @@ extern "C" { * eval() the given script. */ extern void emscripten_run_script(const char *script); +extern int emscripten_run_script_int(const char *script); /* * This macro-looking function will cause Emscripten to diff --git a/system/include/libc/sys/_types.h b/system/include/libc/sys/_types.h index 44f0db87..c56fbd58 100644 --- a/system/include/libc/sys/_types.h +++ b/system/include/libc/sys/_types.h @@ -21,7 +21,7 @@ typedef long _off_t; typedef unsigned long long __dev_t; #else #ifndef __dev_t_defined -typedef unsigned long long __dev_t; /* XXX Emscripten */ +typedef unsigned __dev_t; /* XXX Emscripten */ #endif #endif @@ -33,7 +33,7 @@ typedef unsigned __gid_t; /* XXX Emscripten */ #endif #ifndef __off64_t_defined -__extension__ typedef long long _off64_t; +__extension__ typedef unsigned _off64_t; /* XXX Emscripten */ #endif /* diff --git a/tests/bullet/output2.txt b/tests/bullet/output2.txt new file mode 100644 index 00000000..d74a1031 --- /dev/null +++ b/tests/bullet/output2.txt @@ -0,0 +1,270 @@ +world pos = 2.00,10.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.99,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.98,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.97,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.96,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.94,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.92,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.90,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.88,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.85,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.82,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.78,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.75,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.71,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.67,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.62,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.57,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.52,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.47,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.42,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.36,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.30,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.23,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.17,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.10,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,9.02,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.95,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.87,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.79,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.71,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.62,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.53,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.44,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.35,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.25,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.15,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,8.05,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.94,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.83,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.72,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.61,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.49,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.37,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.25,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.13,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,7.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.87,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.73,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.60,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.46,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.32,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.17,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,6.03,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.88,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.72,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.57,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.41,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.25,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,5.08,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.92,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.75,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.58,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.40,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.22,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,4.04,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,3.86,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,3.67,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,3.48,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,3.29,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,3.10,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,2.90,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,2.70,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,2.50,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,2.29,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,2.08,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,1.87,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,1.66,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,1.44,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,1.22,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,1.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,0.77,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,0.55,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,0.32,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,0.08,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-0.15,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-0.39,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-0.63,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-0.88,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-1.13,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-1.38,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-1.63,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-1.88,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-2.14,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-2.40,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-2.67,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-2.93,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-3.20,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-3.48,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-3.75,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.03,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.31,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.59,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.88,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.17,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.13,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.10,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.08,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.05,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.03,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.01,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.99,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.98,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.97,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.96,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.95,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.95,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.95,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.95,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.96,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.97,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.98,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-4.99,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 +world pos = 2.00,-5.00,0.00 +world pos = 0.00,-56.00,0.00 diff --git a/tests/cases/aliasbitcast2.ll b/tests/cases/aliasbitcast2.ll new file mode 100644 index 00000000..8537e272 --- /dev/null +++ b/tests/cases/aliasbitcast2.ll @@ -0,0 +1,27 @@ +; ModuleID = '/tmp/emscripten/tmp/src.cpp.o' +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32" +target triple = "i386-pc-linux-gnu" + +@.str = private constant [14 x i8] c"hello, world!\00", align 1 ; [#uses=1] + +@othername = alias bitcast (void ()* @original to void (i32)*) ; [#uses=1] + +; [#uses=2] +define void @original() { +entry: + %0 = call i32 bitcast (i32 (i8*)* @puts to i32 (i32*)*)(i8* getelementptr inbounds ([14 x i8]* @.str, i32 0, i32 0)) ; [#uses=0] + br label %return + +return: ; preds = %entry + ret void +} + +; [#uses=1] +declare i32 @puts(i8*) + +; [#uses=0] +define i32 @main() { +entry: + call void @othername(i32 5) + ret i32 0 +} diff --git a/tests/cases/aliasbitcast3.ll b/tests/cases/aliasbitcast3.ll new file mode 100644 index 00000000..4ff969e3 --- /dev/null +++ b/tests/cases/aliasbitcast3.ll @@ -0,0 +1,29 @@ +; ModuleID = '/tmp/emscripten/tmp/src.cpp.o' +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32" +target triple = "i386-pc-linux-gnu" + +@.str = private constant [14 x i8] c"hello, world!\00", align 1 ; [#uses=1] + +@thriceremoved = alias bitcast (void ()* @twiceremoved to void (i32)*) ; [#uses=1] +@othername = alias bitcast (void ()* @original to void (i32)*) ; [#uses=1] +@twiceremoved = alias bitcast (void (i32)* @othername to void ()*) ; [#uses=1] + +; [#uses=2] +define void @original() { +entry: + %0 = call i32 bitcast (i32 (i8*)* @puts to i32 (i32*)*)(i8* getelementptr inbounds ([14 x i8]* @.str, i32 0, i32 0)) ; [#uses=0] + br label %return + +return: ; preds = %entry + ret void +} + +; [#uses=1] +declare i32 @puts(i8*) + +; [#uses=0] +define i32 @main() { +entry: + call void @thriceremoved() + ret i32 0 +} diff --git a/tests/cases/i64toi8star.ll b/tests/cases/i64toi8star.ll new file mode 100644 index 00000000..53a31d02 --- /dev/null +++ b/tests/cases/i64toi8star.ll @@ -0,0 +1,32 @@ +; ModuleID = '/tmp/emscripten/tmp/src.cpp.o' +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32" +target triple = "i386-pc-linux-gnu" + +@.str = private constant [14 x i8] c"hello, world!\00", align 1 ; [#uses=1] +@.str2 = private unnamed_addr constant [9 x i8] c"*%d...*\0A\00", align 1 ; [#uses=1 type=[9 x i8]*] + +; [#uses=1] +declare i32 @puts(i8*) + +declare i32 @printf(i8* nocapture, ...) nounwind + +define i32 @PyLong_FromVoidPtr(i8* %p) nounwind { +entry: + %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x i8]* @.str2, i32 0, i32 0), i8* %p) ; [#uses=0] + br label %return + +return: ; preds = %entry + ret i32 0 +} + +; [#uses=0] +define i32 @main() { +entry: + %retval = alloca i32 ; [#uses=2] + %0 = alloca i32 ; [#uses=2] + %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] + %5 = call i32 @PyLong_FromVoidPtr(i8* null) nounwind ; [#uses=0] + %13 = call i32 @PyLong_FromVoidPtr(i8* inttoptr (i64 1 to i8*)) nounwind ; [#uses=0] + %0 = call i32 bitcast (i32 (i8*)* @puts to i32 (i32*)*)(i8* getelementptr inbounds ([14 x i8]* @.str, i32 0, i32 0)) ; [#uses=0] + ret i32 0 +} diff --git a/tests/cases/i64toi8star.txt b/tests/cases/i64toi8star.txt new file mode 100644 index 00000000..286b2451 --- /dev/null +++ b/tests/cases/i64toi8star.txt @@ -0,0 +1,3 @@ +*0...* +*1...* +hello, world! diff --git a/tests/gl/sdl_ogl.c b/tests/gl/sdl_ogl.c index 829213d8..6f81c7ff 100644 --- a/tests/gl/sdl_ogl.c +++ b/tests/gl/sdl_ogl.c @@ -11,12 +11,24 @@ /* Combined with opengl.org tutorial #2, http://www.opengl.org/wiki/Tutorial2:_VAOs,_VBOs,_Vertex_and_Fragment_Shaders_%28C_/_SDL%29 + + Build with + + gcc sdl_ogl.c -lSDL -lGL + + g++ will fail! + + Or, to JS: + + ~/Dev/emscripten/tools/emmaken.py sdl_ogl.c -o sdl_ogl.o + ~/Dev/emscripten/emscripten.py sdl_ogl.o > sdl_ogl.js */ #include "SDL/SDL.h" #include "SDL/SDL_opengl.h" #include <stdio.h> +#include <stdlib.h> char* filetobuf(char *file) { diff --git a/tests/openjpeg/opj_config.h b/tests/openjpeg/opj_config.h new file mode 100644 index 00000000..1996a415 --- /dev/null +++ b/tests/openjpeg/opj_config.h @@ -0,0 +1,22 @@ +/* create config.h for CMake */ +#define PACKAGE_VERSION "1.4.0" +# +#define HAVE_INTTYPES_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_LIBPNG 1 +#define HAVE_PNG_H 1 +#define HAVE_LIBTIFF 1 +#define HAVE_TIFF_H 1 +# +/* #undef HAVE_LIBLCMS1 */ +/* #undef HAVE_LIBLCMS2 */ +/* #undef HAVE_LCMS1_H */ +/* #undef HAVE_LCMS2_H */ +# diff --git a/tests/parseInt/output.txt b/tests/parseInt/output.txt index f487db74..e345e2ac 100644 --- a/tests/parseInt/output.txt +++ b/tests/parseInt/output.txt @@ -1,6 +1,6 @@ strtol("-9223372036854775809") = -2147483648 ERR 34 -strtoll("-9223372036854775809") = -9223372036854776000 +strtoll("-9223372036854775809") = 9223372036854776000 ERR 34 strtoul("-9223372036854775809") = 4294967295 ERR 34 @@ -8,7 +8,7 @@ strtoull("-9223372036854775809") = 9223372036854774000 strtol("-9223372036854775808") = -2147483648 ERR 34 -strtoll("-9223372036854775808") = -9223372036854776000 +strtoll("-9223372036854775808") = 9223372036854776000 ERR 34 strtoul("-9223372036854775808") = 4294967295 ERR 34 @@ -16,7 +16,7 @@ strtoull("-9223372036854775808") = 9223372036854774000 strtol("-9223372036854775807") = -2147483648 ERR 34 -strtoll("-9223372036854775807") = -9223372036854776000 +strtoll("-9223372036854775807") = 9223372036854776000 ERR 34 strtoul("-9223372036854775807") = 4294967295 ERR 34 @@ -24,7 +24,7 @@ strtoull("-9223372036854775807") = 9223372036854774000 strtol("-2147483649") = -2147483648 ERR 34 -strtoll("-2147483649") = -2147483649 +strtoll("-2147483649") = -2147483648 strtoul("-2147483649") = 2147483647 strtoull("-2147483649") = 18446744071562068000 @@ -34,19 +34,19 @@ strtoul("-2147483648") = 2147483648 strtoull("-2147483648") = 18446744071562068000 strtol("-2147483647") = -2147483647 -strtoll("-2147483647") = -2147483647 +strtoll("-2147483647") = -2147483648 strtoul("-2147483647") = 2147483649 strtoull("-2147483647") = 18446744071562068000 strtol("-5") = -5 -strtoll("-5") = -5 +strtoll("-5") = 0 strtoul("-5") = 4294967291 -strtoull("-5") = 18446744073709552000 +strtoull("-5") = 18446744069414584000 strtol("-1") = -1 -strtoll("-1") = -1 +strtoll("-1") = 0 strtoul("-1") = 4294967295 -strtoull("-1") = 18446744073709552000 +strtoull("-1") = 18446744069414584000 strtol("0") = 0 strtoll("0") = 0 @@ -104,7 +104,7 @@ strtoll("18446744073709551614") = 9223372036854776000 ERR 34 strtoul("18446744073709551614") = 4294967295 ERR 34 -strtoull("18446744073709551614") = 18446744073709552000 +strtoull("18446744073709551614") = 18446744069414584000 strtol("18446744073709551615") = 2147483647 ERR 34 @@ -112,7 +112,7 @@ strtoll("18446744073709551615") = 9223372036854776000 ERR 34 strtoul("18446744073709551615") = 4294967295 ERR 34 -strtoull("18446744073709551615") = 18446744073709552000 +strtoull("18446744073709551615") = 18446744069414584000 strtol("18446744073709551616") = 2147483647 ERR 34 @@ -120,7 +120,7 @@ strtoll("18446744073709551616") = 9223372036854776000 ERR 34 strtoul("18446744073709551616") = 4294967295 ERR 34 -strtoull("18446744073709551616") = 18446744073709552000 +strtoull("18446744073709551616") = 18446744069414584000 strtol("0x12", 0, 0) = 18 strtol("0x12", 0, 10) = 0 diff --git a/tests/printf/output_i64_1.txt b/tests/printf/output_i64_1.txt new file mode 100644 index 00000000..775f3f8d --- /dev/null +++ b/tests/printf/output_i64_1.txt @@ -0,0 +1,8278 @@ +ab1.23cd +n=7 + +Characters: a A +Decimals: 1977 650000 12 4 +Preceding with blanks: 1977 +Preceding with zeros: 0000001977 +Some different radixes: 100 64 144 0x64 0144 +floats: 3.14 +3e+00 3.141600E+00 +Width trick: 10 +A string % +Null string: (null) +Null pointer: (nil) +inf +INF +-inf +-INF +nan +NAN + nan +nan + nan +nan + inf +-inf +in%3.5valid +123 +456 +0 +0 +0.0 +0.00 +0.00000 +1 +1 +1.0 +1.00 +1.00000 +1 +12 +123 +1234 +12345 +123456 +1.23457e+06 +1.23457e+07 +1.23457e+08 +1.23457e+09 +1.23457e+10 +1.23457e+11 +1.23457e+12 +1.23457e+13 +1.23457e+14 +1.23457e+15 +1.23457e+16 +1.23457e+17 +1.23457e+26 +1.12346 +12.1235 +123.123 +1234.12 +12345.1 +123456 +1.23457e+06 +1.23457e+07 +1.23457e+17 + 1 + 12 + 123 + 1234 + 12345 +1.2346e+05 +1.2346e+06 +1.2346e+07 +1.2346e+08 +1.2346e+09 +1.2346e+10 +1.2346e+11 +1.2346e+12 +1.2346e+13 +1.2346e+14 +1.2346e+15 +1.2346e+16 +1.2346e+17 +1.2346e+26 + 1.1235 + 12.123 + 123.12 + 1234.1 + 12345 +1.2346e+05 +1.2346e+06 +1.2346e+07 +1.2346e+17 +1. +1.e+01 +1.e+02 +1.e+03 +1.e+04 +1.e+05 +1.e+06 +1.e+07 +1.e+08 +1.e+09 +1.e+10 +1.e+11 +1.e+12 +1.e+13 +1.e+14 +1.e+15 +1.e+16 +1.e+17 +1.e+26 +1. +1.e+01 +1.e+02 +1.e+03 +1.e+04 +1.e+05 +1.e+06 +1.e+07 +1.e+17 +1e-10 +1.2e-09 +1.23e-08 +1.234e-07 +1.2345e-06 +1.23456e-05 +0.000123457 +0.00123457 +0.0123457 + 1e-10 + 1.2e-09 + 1.23e-08 + 1.234e-07 +1.2345e-06 +1.2346e-05 +0.00012346 + 0.0012346 + 0.012346 +1.e-10 +1.e-09 +1.e-08 +1.e-07 +1.e-06 +1.e-05 +0.0001 +0.001 +0 +0.123 +0.123457 + 0 + 0.123 + 0.12346 +0. +0.1 +0.1 + +%+d : +8127534 +%+.d : +8127534 +%+.0d : +8127534 +%+.1d : +8127534 +%+.2d : +8127534 +%+.5d : +8127534 +%+.10d : +0008127534 +%+.30d : +000000000000000000000008127534 +%+0d : +8127534 +%+1d : +8127534 +%+1.d : +8127534 +%+1.0d : +8127534 +%+1.1d : +8127534 +%+1.2d : +8127534 +%+1.5d : +8127534 +%+1.10d : +0008127534 +%+1.30d : +000000000000000000000008127534 +%+2d : +8127534 +%+2.d : +8127534 +%+2.0d : +8127534 +%+2.1d : +8127534 +%+2.2d : +8127534 +%+2.5d : +8127534 +%+2.10d : +0008127534 +%+2.30d : +000000000000000000000008127534 +%+5d : +8127534 +%+5.d : +8127534 +%+5.0d : +8127534 +%+5.1d : +8127534 +%+5.2d : +8127534 +%+5.5d : +8127534 +%+5.10d : +0008127534 +%+5.30d : +000000000000000000000008127534 +%+10d : +8127534 +%+10.d : +8127534 +%+10.0d : +8127534 +%+10.1d : +8127534 +%+10.2d : +8127534 +%+10.5d : +8127534 +%+10.10d : +0008127534 +%+10.30d : +000000000000000000000008127534 +%+30d : +8127534 +%+30.d : +8127534 +%+30.0d : +8127534 +%+30.1d : +8127534 +%+30.2d : +8127534 +%+30.5d : +8127534 +%+30.10d : +0008127534 +%+30.30d : +000000000000000000000008127534 +%-d : 8127534 +%-.d : 8127534 +%-.0d : 8127534 +%-.1d : 8127534 +%-.2d : 8127534 +%-.5d : 8127534 +%-.10d : 0008127534 +%-.30d : 000000000000000000000008127534 +%-1d : 8127534 +%-1.d : 8127534 +%-1.0d : 8127534 +%-1.1d : 8127534 +%-1.2d : 8127534 +%-1.5d : 8127534 +%-1.10d : 0008127534 +%-1.30d : 000000000000000000000008127534 +%-2d : 8127534 +%-2.d : 8127534 +%-2.0d : 8127534 +%-2.1d : 8127534 +%-2.2d : 8127534 +%-2.5d : 8127534 +%-2.10d : 0008127534 +%-2.30d : 000000000000000000000008127534 +%-5d : 8127534 +%-5.d : 8127534 +%-5.0d : 8127534 +%-5.1d : 8127534 +%-5.2d : 8127534 +%-5.5d : 8127534 +%-5.10d : 0008127534 +%-5.30d : 000000000000000000000008127534 +%-10d : 8127534 +%-10.d : 8127534 +%-10.0d : 8127534 +%-10.1d : 8127534 +%-10.2d : 8127534 +%-10.5d : 8127534 +%-10.10d : 0008127534 +%-10.30d : 000000000000000000000008127534 +%-30d : 8127534 +%-30.d : 8127534 +%-30.0d : 8127534 +%-30.1d : 8127534 +%-30.2d : 8127534 +%-30.5d : 8127534 +%-30.10d : 0008127534 +%-30.30d : 000000000000000000000008127534 +%0d : 8127534 +%01d : 8127534 +%02d : 8127534 +%05d : 8127534 +%010d : 0008127534 +%030d : 000000000000000000000008127534 +%-+d : +8127534 +%-+.d : +8127534 +%-+.0d : +8127534 +%-+.1d : +8127534 +%-+.2d : +8127534 +%-+.5d : +8127534 +%-+.10d : +0008127534 +%-+.30d : +000000000000000000000008127534 +%-+1d : +8127534 +%-+1.d : +8127534 +%-+1.0d : +8127534 +%-+1.1d : +8127534 +%-+1.2d : +8127534 +%-+1.5d : +8127534 +%-+1.10d : +0008127534 +%-+1.30d : +000000000000000000000008127534 +%-+2d : +8127534 +%-+2.d : +8127534 +%-+2.0d : +8127534 +%-+2.1d : +8127534 +%-+2.2d : +8127534 +%-+2.5d : +8127534 +%-+2.10d : +0008127534 +%-+2.30d : +000000000000000000000008127534 +%-+5d : +8127534 +%-+5.d : +8127534 +%-+5.0d : +8127534 +%-+5.1d : +8127534 +%-+5.2d : +8127534 +%-+5.5d : +8127534 +%-+5.10d : +0008127534 +%-+5.30d : +000000000000000000000008127534 +%-+10d : +8127534 +%-+10.d : +8127534 +%-+10.0d : +8127534 +%-+10.1d : +8127534 +%-+10.2d : +8127534 +%-+10.5d : +8127534 +%-+10.10d : +0008127534 +%-+10.30d : +000000000000000000000008127534 +%-+30d : +8127534 +%-+30.d : +8127534 +%-+30.0d : +8127534 +%-+30.1d : +8127534 +%-+30.2d : +8127534 +%-+30.5d : +8127534 +%-+30.10d : +0008127534 +%-+30.30d : +000000000000000000000008127534 +%+0d : +8127534 +%+01d : +8127534 +%+02d : +8127534 +%+05d : +8127534 +%+010d : +008127534 +%+030d : +00000000000000000000008127534 +%+-d : +8127534 +%+-.d : +8127534 +%+-.0d : +8127534 +%+-.1d : +8127534 +%+-.2d : +8127534 +%+-.5d : +8127534 +%+-.10d : +0008127534 +%+-.30d : +000000000000000000000008127534 +%+-1d : +8127534 +%+-1.d : +8127534 +%+-1.0d : +8127534 +%+-1.1d : +8127534 +%+-1.2d : +8127534 +%+-1.5d : +8127534 +%+-1.10d : +0008127534 +%+-1.30d : +000000000000000000000008127534 +%+-2d : +8127534 +%+-2.d : +8127534 +%+-2.0d : +8127534 +%+-2.1d : +8127534 +%+-2.2d : +8127534 +%+-2.5d : +8127534 +%+-2.10d : +0008127534 +%+-2.30d : +000000000000000000000008127534 +%+-5d : +8127534 +%+-5.d : +8127534 +%+-5.0d : +8127534 +%+-5.1d : +8127534 +%+-5.2d : +8127534 +%+-5.5d : +8127534 +%+-5.10d : +0008127534 +%+-5.30d : +000000000000000000000008127534 +%+-10d : +8127534 +%+-10.d : +8127534 +%+-10.0d : +8127534 +%+-10.1d : +8127534 +%+-10.2d : +8127534 +%+-10.5d : +8127534 +%+-10.10d : +0008127534 +%+-10.30d : +000000000000000000000008127534 +%+-30d : +8127534 +%+-30.d : +8127534 +%+-30.0d : +8127534 +%+-30.1d : +8127534 +%+-30.2d : +8127534 +%+-30.5d : +8127534 +%+-30.10d : +0008127534 +%+-30.30d : +000000000000000000000008127534 +%+0d : +8127534 +%+01d : +8127534 +%+02d : +8127534 +%+05d : +8127534 +%+010d : +008127534 +%+030d : +00000000000000000000008127534 +%+i : +8127534 +%+.i : +8127534 +%+.0i : +8127534 +%+.1i : +8127534 +%+.2i : +8127534 +%+.5i : +8127534 +%+.10i : +0008127534 +%+.30i : +000000000000000000000008127534 +%+0i : +8127534 +%+1i : +8127534 +%+1.i : +8127534 +%+1.0i : +8127534 +%+1.1i : +8127534 +%+1.2i : +8127534 +%+1.5i : +8127534 +%+1.10i : +0008127534 +%+1.30i : +000000000000000000000008127534 +%+2i : +8127534 +%+2.i : +8127534 +%+2.0i : +8127534 +%+2.1i : +8127534 +%+2.2i : +8127534 +%+2.5i : +8127534 +%+2.10i : +0008127534 +%+2.30i : +000000000000000000000008127534 +%+5i : +8127534 +%+5.i : +8127534 +%+5.0i : +8127534 +%+5.1i : +8127534 +%+5.2i : +8127534 +%+5.5i : +8127534 +%+5.10i : +0008127534 +%+5.30i : +000000000000000000000008127534 +%+10i : +8127534 +%+10.i : +8127534 +%+10.0i : +8127534 +%+10.1i : +8127534 +%+10.2i : +8127534 +%+10.5i : +8127534 +%+10.10i : +0008127534 +%+10.30i : +000000000000000000000008127534 +%+30i : +8127534 +%+30.i : +8127534 +%+30.0i : +8127534 +%+30.1i : +8127534 +%+30.2i : +8127534 +%+30.5i : +8127534 +%+30.10i : +0008127534 +%+30.30i : +000000000000000000000008127534 +%-i : 8127534 +%-.i : 8127534 +%-.0i : 8127534 +%-.1i : 8127534 +%-.2i : 8127534 +%-.5i : 8127534 +%-.10i : 0008127534 +%-.30i : 000000000000000000000008127534 +%-1i : 8127534 +%-1.i : 8127534 +%-1.0i : 8127534 +%-1.1i : 8127534 +%-1.2i : 8127534 +%-1.5i : 8127534 +%-1.10i : 0008127534 +%-1.30i : 000000000000000000000008127534 +%-2i : 8127534 +%-2.i : 8127534 +%-2.0i : 8127534 +%-2.1i : 8127534 +%-2.2i : 8127534 +%-2.5i : 8127534 +%-2.10i : 0008127534 +%-2.30i : 000000000000000000000008127534 +%-5i : 8127534 +%-5.i : 8127534 +%-5.0i : 8127534 +%-5.1i : 8127534 +%-5.2i : 8127534 +%-5.5i : 8127534 +%-5.10i : 0008127534 +%-5.30i : 000000000000000000000008127534 +%-10i : 8127534 +%-10.i : 8127534 +%-10.0i : 8127534 +%-10.1i : 8127534 +%-10.2i : 8127534 +%-10.5i : 8127534 +%-10.10i : 0008127534 +%-10.30i : 000000000000000000000008127534 +%-30i : 8127534 +%-30.i : 8127534 +%-30.0i : 8127534 +%-30.1i : 8127534 +%-30.2i : 8127534 +%-30.5i : 8127534 +%-30.10i : 0008127534 +%-30.30i : 000000000000000000000008127534 +%0i : 8127534 +%01i : 8127534 +%02i : 8127534 +%05i : 8127534 +%010i : 0008127534 +%030i : 000000000000000000000008127534 +%-+i : +8127534 +%-+.i : +8127534 +%-+.0i : +8127534 +%-+.1i : +8127534 +%-+.2i : +8127534 +%-+.5i : +8127534 +%-+.10i : +0008127534 +%-+.30i : +000000000000000000000008127534 +%-+1i : +8127534 +%-+1.i : +8127534 +%-+1.0i : +8127534 +%-+1.1i : +8127534 +%-+1.2i : +8127534 +%-+1.5i : +8127534 +%-+1.10i : +0008127534 +%-+1.30i : +000000000000000000000008127534 +%-+2i : +8127534 +%-+2.i : +8127534 +%-+2.0i : +8127534 +%-+2.1i : +8127534 +%-+2.2i : +8127534 +%-+2.5i : +8127534 +%-+2.10i : +0008127534 +%-+2.30i : +000000000000000000000008127534 +%-+5i : +8127534 +%-+5.i : +8127534 +%-+5.0i : +8127534 +%-+5.1i : +8127534 +%-+5.2i : +8127534 +%-+5.5i : +8127534 +%-+5.10i : +0008127534 +%-+5.30i : +000000000000000000000008127534 +%-+10i : +8127534 +%-+10.i : +8127534 +%-+10.0i : +8127534 +%-+10.1i : +8127534 +%-+10.2i : +8127534 +%-+10.5i : +8127534 +%-+10.10i : +0008127534 +%-+10.30i : +000000000000000000000008127534 +%-+30i : +8127534 +%-+30.i : +8127534 +%-+30.0i : +8127534 +%-+30.1i : +8127534 +%-+30.2i : +8127534 +%-+30.5i : +8127534 +%-+30.10i : +0008127534 +%-+30.30i : +000000000000000000000008127534 +%+0i : +8127534 +%+01i : +8127534 +%+02i : +8127534 +%+05i : +8127534 +%+010i : +008127534 +%+030i : +00000000000000000000008127534 +%+-i : +8127534 +%+-.i : +8127534 +%+-.0i : +8127534 +%+-.1i : +8127534 +%+-.2i : +8127534 +%+-.5i : +8127534 +%+-.10i : +0008127534 +%+-.30i : +000000000000000000000008127534 +%+-1i : +8127534 +%+-1.i : +8127534 +%+-1.0i : +8127534 +%+-1.1i : +8127534 +%+-1.2i : +8127534 +%+-1.5i : +8127534 +%+-1.10i : +0008127534 +%+-1.30i : +000000000000000000000008127534 +%+-2i : +8127534 +%+-2.i : +8127534 +%+-2.0i : +8127534 +%+-2.1i : +8127534 +%+-2.2i : +8127534 +%+-2.5i : +8127534 +%+-2.10i : +0008127534 +%+-2.30i : +000000000000000000000008127534 +%+-5i : +8127534 +%+-5.i : +8127534 +%+-5.0i : +8127534 +%+-5.1i : +8127534 +%+-5.2i : +8127534 +%+-5.5i : +8127534 +%+-5.10i : +0008127534 +%+-5.30i : +000000000000000000000008127534 +%+-10i : +8127534 +%+-10.i : +8127534 +%+-10.0i : +8127534 +%+-10.1i : +8127534 +%+-10.2i : +8127534 +%+-10.5i : +8127534 +%+-10.10i : +0008127534 +%+-10.30i : +000000000000000000000008127534 +%+-30i : +8127534 +%+-30.i : +8127534 +%+-30.0i : +8127534 +%+-30.1i : +8127534 +%+-30.2i : +8127534 +%+-30.5i : +8127534 +%+-30.10i : +0008127534 +%+-30.30i : +000000000000000000000008127534 +%+0i : +8127534 +%+01i : +8127534 +%+02i : +8127534 +%+05i : +8127534 +%+010i : +008127534 +%+030i : +00000000000000000000008127534 +%-u : 8127534 +%-.u : 8127534 +%-.0u : 8127534 +%-.1u : 8127534 +%-.2u : 8127534 +%-.5u : 8127534 +%-.10u : 0008127534 +%-.30u : 000000000000000000000008127534 +%-1u : 8127534 +%-1.u : 8127534 +%-1.0u : 8127534 +%-1.1u : 8127534 +%-1.2u : 8127534 +%-1.5u : 8127534 +%-1.10u : 0008127534 +%-1.30u : 000000000000000000000008127534 +%-2u : 8127534 +%-2.u : 8127534 +%-2.0u : 8127534 +%-2.1u : 8127534 +%-2.2u : 8127534 +%-2.5u : 8127534 +%-2.10u : 0008127534 +%-2.30u : 000000000000000000000008127534 +%-5u : 8127534 +%-5.u : 8127534 +%-5.0u : 8127534 +%-5.1u : 8127534 +%-5.2u : 8127534 +%-5.5u : 8127534 +%-5.10u : 0008127534 +%-5.30u : 000000000000000000000008127534 +%-10u : 8127534 +%-10.u : 8127534 +%-10.0u : 8127534 +%-10.1u : 8127534 +%-10.2u : 8127534 +%-10.5u : 8127534 +%-10.10u : 0008127534 +%-10.30u : 000000000000000000000008127534 +%-30u : 8127534 +%-30.u : 8127534 +%-30.0u : 8127534 +%-30.1u : 8127534 +%-30.2u : 8127534 +%-30.5u : 8127534 +%-30.10u : 0008127534 +%-30.30u : 000000000000000000000008127534 +%0u : 8127534 +%01u : 8127534 +%02u : 8127534 +%05u : 8127534 +%010u : 0008127534 +%030u : 000000000000000000000008127534 +%+ld : +8127534 +%+.ld : +8127534 +%+.0ld : +8127534 +%+.1ld : +8127534 +%+.2ld : +8127534 +%+.5ld : +8127534 +%+.10ld : +0008127534 +%+.30ld : +000000000000000000000008127534 +%+0ld : +8127534 +%+1ld : +8127534 +%+1.ld : +8127534 +%+1.0ld : +8127534 +%+1.1ld : +8127534 +%+1.2ld : +8127534 +%+1.5ld : +8127534 +%+1.10ld : +0008127534 +%+1.30ld : +000000000000000000000008127534 +%+2ld : +8127534 +%+2.ld : +8127534 +%+2.0ld : +8127534 +%+2.1ld : +8127534 +%+2.2ld : +8127534 +%+2.5ld : +8127534 +%+2.10ld : +0008127534 +%+2.30ld : +000000000000000000000008127534 +%+5ld : +8127534 +%+5.ld : +8127534 +%+5.0ld : +8127534 +%+5.1ld : +8127534 +%+5.2ld : +8127534 +%+5.5ld : +8127534 +%+5.10ld : +0008127534 +%+5.30ld : +000000000000000000000008127534 +%+10ld : +8127534 +%+10.ld : +8127534 +%+10.0ld : +8127534 +%+10.1ld : +8127534 +%+10.2ld : +8127534 +%+10.5ld : +8127534 +%+10.10ld : +0008127534 +%+10.30ld : +000000000000000000000008127534 +%+30ld : +8127534 +%+30.ld : +8127534 +%+30.0ld : +8127534 +%+30.1ld : +8127534 +%+30.2ld : +8127534 +%+30.5ld : +8127534 +%+30.10ld : +0008127534 +%+30.30ld : +000000000000000000000008127534 +%-ld : 8127534 +%-.ld : 8127534 +%-.0ld : 8127534 +%-.1ld : 8127534 +%-.2ld : 8127534 +%-.5ld : 8127534 +%-.10ld : 0008127534 +%-.30ld : 000000000000000000000008127534 +%-1ld : 8127534 +%-1.ld : 8127534 +%-1.0ld : 8127534 +%-1.1ld : 8127534 +%-1.2ld : 8127534 +%-1.5ld : 8127534 +%-1.10ld : 0008127534 +%-1.30ld : 000000000000000000000008127534 +%-2ld : 8127534 +%-2.ld : 8127534 +%-2.0ld : 8127534 +%-2.1ld : 8127534 +%-2.2ld : 8127534 +%-2.5ld : 8127534 +%-2.10ld : 0008127534 +%-2.30ld : 000000000000000000000008127534 +%-5ld : 8127534 +%-5.ld : 8127534 +%-5.0ld : 8127534 +%-5.1ld : 8127534 +%-5.2ld : 8127534 +%-5.5ld : 8127534 +%-5.10ld : 0008127534 +%-5.30ld : 000000000000000000000008127534 +%-10ld : 8127534 +%-10.ld : 8127534 +%-10.0ld : 8127534 +%-10.1ld : 8127534 +%-10.2ld : 8127534 +%-10.5ld : 8127534 +%-10.10ld : 0008127534 +%-10.30ld : 000000000000000000000008127534 +%-30ld : 8127534 +%-30.ld : 8127534 +%-30.0ld : 8127534 +%-30.1ld : 8127534 +%-30.2ld : 8127534 +%-30.5ld : 8127534 +%-30.10ld : 0008127534 +%-30.30ld : 000000000000000000000008127534 +%0ld : 8127534 +%01ld : 8127534 +%02ld : 8127534 +%05ld : 8127534 +%010ld : 0008127534 +%030ld : 000000000000000000000008127534 +%-+ld : +8127534 +%-+.ld : +8127534 +%-+.0ld : +8127534 +%-+.1ld : +8127534 +%-+.2ld : +8127534 +%-+.5ld : +8127534 +%-+.10ld : +0008127534 +%-+.30ld : +000000000000000000000008127534 +%-+1ld : +8127534 +%-+1.ld : +8127534 +%-+1.0ld : +8127534 +%-+1.1ld : +8127534 +%-+1.2ld : +8127534 +%-+1.5ld : +8127534 +%-+1.10ld : +0008127534 +%-+1.30ld : +000000000000000000000008127534 +%-+2ld : +8127534 +%-+2.ld : +8127534 +%-+2.0ld : +8127534 +%-+2.1ld : +8127534 +%-+2.2ld : +8127534 +%-+2.5ld : +8127534 +%-+2.10ld : +0008127534 +%-+2.30ld : +000000000000000000000008127534 +%-+5ld : +8127534 +%-+5.ld : +8127534 +%-+5.0ld : +8127534 +%-+5.1ld : +8127534 +%-+5.2ld : +8127534 +%-+5.5ld : +8127534 +%-+5.10ld : +0008127534 +%-+5.30ld : +000000000000000000000008127534 +%-+10ld : +8127534 +%-+10.ld : +8127534 +%-+10.0ld : +8127534 +%-+10.1ld : +8127534 +%-+10.2ld : +8127534 +%-+10.5ld : +8127534 +%-+10.10ld : +0008127534 +%-+10.30ld : +000000000000000000000008127534 +%-+30ld : +8127534 +%-+30.ld : +8127534 +%-+30.0ld : +8127534 +%-+30.1ld : +8127534 +%-+30.2ld : +8127534 +%-+30.5ld : +8127534 +%-+30.10ld : +0008127534 +%-+30.30ld : +000000000000000000000008127534 +%+0ld : +8127534 +%+01ld : +8127534 +%+02ld : +8127534 +%+05ld : +8127534 +%+010ld : +008127534 +%+030ld : +00000000000000000000008127534 +%+-ld : +8127534 +%+-.ld : +8127534 +%+-.0ld : +8127534 +%+-.1ld : +8127534 +%+-.2ld : +8127534 +%+-.5ld : +8127534 +%+-.10ld : +0008127534 +%+-.30ld : +000000000000000000000008127534 +%+-1ld : +8127534 +%+-1.ld : +8127534 +%+-1.0ld : +8127534 +%+-1.1ld : +8127534 +%+-1.2ld : +8127534 +%+-1.5ld : +8127534 +%+-1.10ld : +0008127534 +%+-1.30ld : +000000000000000000000008127534 +%+-2ld : +8127534 +%+-2.ld : +8127534 +%+-2.0ld : +8127534 +%+-2.1ld : +8127534 +%+-2.2ld : +8127534 +%+-2.5ld : +8127534 +%+-2.10ld : +0008127534 +%+-2.30ld : +000000000000000000000008127534 +%+-5ld : +8127534 +%+-5.ld : +8127534 +%+-5.0ld : +8127534 +%+-5.1ld : +8127534 +%+-5.2ld : +8127534 +%+-5.5ld : +8127534 +%+-5.10ld : +0008127534 +%+-5.30ld : +000000000000000000000008127534 +%+-10ld : +8127534 +%+-10.ld : +8127534 +%+-10.0ld : +8127534 +%+-10.1ld : +8127534 +%+-10.2ld : +8127534 +%+-10.5ld : +8127534 +%+-10.10ld : +0008127534 +%+-10.30ld : +000000000000000000000008127534 +%+-30ld : +8127534 +%+-30.ld : +8127534 +%+-30.0ld : +8127534 +%+-30.1ld : +8127534 +%+-30.2ld : +8127534 +%+-30.5ld : +8127534 +%+-30.10ld : +0008127534 +%+-30.30ld : +000000000000000000000008127534 +%+0ld : +8127534 +%+01ld : +8127534 +%+02ld : +8127534 +%+05ld : +8127534 +%+010ld : +008127534 +%+030ld : +00000000000000000000008127534 +%+lld : +8127534 +%+.lld : +8127534 +%+.0lld : +8127534 +%+.1lld : +8127534 +%+.2lld : +8127534 +%+.5lld : +8127534 +%+.10lld : +0008127534 +%+.30lld : +000000000000000000000008127534 +%+0lld : +8127534 +%+1lld : +8127534 +%+1.lld : +8127534 +%+1.0lld : +8127534 +%+1.1lld : +8127534 +%+1.2lld : +8127534 +%+1.5lld : +8127534 +%+1.10lld : +0008127534 +%+1.30lld : +000000000000000000000008127534 +%+2lld : +8127534 +%+2.lld : +8127534 +%+2.0lld : +8127534 +%+2.1lld : +8127534 +%+2.2lld : +8127534 +%+2.5lld : +8127534 +%+2.10lld : +0008127534 +%+2.30lld : +000000000000000000000008127534 +%+5lld : +8127534 +%+5.lld : +8127534 +%+5.0lld : +8127534 +%+5.1lld : +8127534 +%+5.2lld : +8127534 +%+5.5lld : +8127534 +%+5.10lld : +0008127534 +%+5.30lld : +000000000000000000000008127534 +%+10lld : +8127534 +%+10.lld : +8127534 +%+10.0lld : +8127534 +%+10.1lld : +8127534 +%+10.2lld : +8127534 +%+10.5lld : +8127534 +%+10.10lld : +0008127534 +%+10.30lld : +000000000000000000000008127534 +%+30lld : +8127534 +%+30.lld : +8127534 +%+30.0lld : +8127534 +%+30.1lld : +8127534 +%+30.2lld : +8127534 +%+30.5lld : +8127534 +%+30.10lld : +0008127534 +%+30.30lld : +000000000000000000000008127534 +%-lld : 8127534 +%-.lld : 8127534 +%-.0lld : 8127534 +%-.1lld : 8127534 +%-.2lld : 8127534 +%-.5lld : 8127534 +%-.10lld : 0008127534 +%-.30lld : 000000000000000000000008127534 +%-1lld : 8127534 +%-1.lld : 8127534 +%-1.0lld : 8127534 +%-1.1lld : 8127534 +%-1.2lld : 8127534 +%-1.5lld : 8127534 +%-1.10lld : 0008127534 +%-1.30lld : 000000000000000000000008127534 +%-2lld : 8127534 +%-2.lld : 8127534 +%-2.0lld : 8127534 +%-2.1lld : 8127534 +%-2.2lld : 8127534 +%-2.5lld : 8127534 +%-2.10lld : 0008127534 +%-2.30lld : 000000000000000000000008127534 +%-5lld : 8127534 +%-5.lld : 8127534 +%-5.0lld : 8127534 +%-5.1lld : 8127534 +%-5.2lld : 8127534 +%-5.5lld : 8127534 +%-5.10lld : 0008127534 +%-5.30lld : 000000000000000000000008127534 +%-10lld : 8127534 +%-10.lld : 8127534 +%-10.0lld : 8127534 +%-10.1lld : 8127534 +%-10.2lld : 8127534 +%-10.5lld : 8127534 +%-10.10lld : 0008127534 +%-10.30lld : 000000000000000000000008127534 +%-30lld : 8127534 +%-30.lld : 8127534 +%-30.0lld : 8127534 +%-30.1lld : 8127534 +%-30.2lld : 8127534 +%-30.5lld : 8127534 +%-30.10lld : 0008127534 +%-30.30lld : 000000000000000000000008127534 +%0lld : 8127534 +%01lld : 8127534 +%02lld : 8127534 +%05lld : 8127534 +%010lld : 0008127534 +%030lld : 000000000000000000000008127534 +%-+lld : +8127534 +%-+.lld : +8127534 +%-+.0lld : +8127534 +%-+.1lld : +8127534 +%-+.2lld : +8127534 +%-+.5lld : +8127534 +%-+.10lld : +0008127534 +%-+.30lld : +000000000000000000000008127534 +%-+1lld : +8127534 +%-+1.lld : +8127534 +%-+1.0lld : +8127534 +%-+1.1lld : +8127534 +%-+1.2lld : +8127534 +%-+1.5lld : +8127534 +%-+1.10lld : +0008127534 +%-+1.30lld : +000000000000000000000008127534 +%-+2lld : +8127534 +%-+2.lld : +8127534 +%-+2.0lld : +8127534 +%-+2.1lld : +8127534 +%-+2.2lld : +8127534 +%-+2.5lld : +8127534 +%-+2.10lld : +0008127534 +%-+2.30lld : +000000000000000000000008127534 +%-+5lld : +8127534 +%-+5.lld : +8127534 +%-+5.0lld : +8127534 +%-+5.1lld : +8127534 +%-+5.2lld : +8127534 +%-+5.5lld : +8127534 +%-+5.10lld : +0008127534 +%-+5.30lld : +000000000000000000000008127534 +%-+10lld : +8127534 +%-+10.lld : +8127534 +%-+10.0lld : +8127534 +%-+10.1lld : +8127534 +%-+10.2lld : +8127534 +%-+10.5lld : +8127534 +%-+10.10lld : +0008127534 +%-+10.30lld : +000000000000000000000008127534 +%-+30lld : +8127534 +%-+30.lld : +8127534 +%-+30.0lld : +8127534 +%-+30.1lld : +8127534 +%-+30.2lld : +8127534 +%-+30.5lld : +8127534 +%-+30.10lld : +0008127534 +%-+30.30lld : +000000000000000000000008127534 +%+0lld : +8127534 +%+01lld : +8127534 +%+02lld : +8127534 +%+05lld : +8127534 +%+010lld : +008127534 +%+030lld : +00000000000000000000008127534 +%+-lld : +8127534 +%+-.lld : +8127534 +%+-.0lld : +8127534 +%+-.1lld : +8127534 +%+-.2lld : +8127534 +%+-.5lld : +8127534 +%+-.10lld : +0008127534 +%+-.30lld : +000000000000000000000008127534 +%+-1lld : +8127534 +%+-1.lld : +8127534 +%+-1.0lld : +8127534 +%+-1.1lld : +8127534 +%+-1.2lld : +8127534 +%+-1.5lld : +8127534 +%+-1.10lld : +0008127534 +%+-1.30lld : +000000000000000000000008127534 +%+-2lld : +8127534 +%+-2.lld : +8127534 +%+-2.0lld : +8127534 +%+-2.1lld : +8127534 +%+-2.2lld : +8127534 +%+-2.5lld : +8127534 +%+-2.10lld : +0008127534 +%+-2.30lld : +000000000000000000000008127534 +%+-5lld : +8127534 +%+-5.lld : +8127534 +%+-5.0lld : +8127534 +%+-5.1lld : +8127534 +%+-5.2lld : +8127534 +%+-5.5lld : +8127534 +%+-5.10lld : +0008127534 +%+-5.30lld : +000000000000000000000008127534 +%+-10lld : +8127534 +%+-10.lld : +8127534 +%+-10.0lld : +8127534 +%+-10.1lld : +8127534 +%+-10.2lld : +8127534 +%+-10.5lld : +8127534 +%+-10.10lld : +0008127534 +%+-10.30lld : +000000000000000000000008127534 +%+-30lld : +8127534 +%+-30.lld : +8127534 +%+-30.0lld : +8127534 +%+-30.1lld : +8127534 +%+-30.2lld : +8127534 +%+-30.5lld : +8127534 +%+-30.10lld : +0008127534 +%+-30.30lld : +000000000000000000000008127534 +%+0lld : +8127534 +%+01lld : +8127534 +%+02lld : +8127534 +%+05lld : +8127534 +%+010lld : +008127534 +%+030lld : +00000000000000000000008127534 +%+f : +8127.534180 +%+.f : +8128 +%+.0f : +8128 +%+.1f : +8127.5 +%+.2f : +8127.53 +%+.5f : +8127.53418 +%+.10f : +8127.5341796875 +%+.30f : +8127.534179687500000000000000000000 +%+0f : +8127.534180 +%+0.f : +8128 +%+0.0f : +8128 +%+0.1f : +8127.5 +%+0.2f : +8127.53 +%+0.5f : +8127.53418 +%+0.10f : +8127.5341796875 +%+0.30f : +8127.534179687500000000000000000000 +%+1f : +8127.534180 +%+1.f : +8128 +%+1.0f : +8128 +%+1.1f : +8127.5 +%+1.2f : +8127.53 +%+1.5f : +8127.53418 +%+1.10f : +8127.5341796875 +%+1.30f : +8127.534179687500000000000000000000 +%+2f : +8127.534180 +%+2.f : +8128 +%+2.0f : +8128 +%+2.1f : +8127.5 +%+2.2f : +8127.53 +%+2.5f : +8127.53418 +%+2.10f : +8127.5341796875 +%+2.30f : +8127.534179687500000000000000000000 +%+5f : +8127.534180 +%+5.f : +8128 +%+5.0f : +8128 +%+5.1f : +8127.5 +%+5.2f : +8127.53 +%+5.5f : +8127.53418 +%+5.10f : +8127.5341796875 +%+5.30f : +8127.534179687500000000000000000000 +%+10f : +8127.534180 +%+10.f : +8128 +%+10.0f : +8128 +%+10.1f : +8127.5 +%+10.2f : +8127.53 +%+10.5f : +8127.53418 +%+10.10f : +8127.5341796875 +%+10.30f : +8127.534179687500000000000000000000 +%+30f : +8127.534180 +%+30.f : +8128 +%+30.0f : +8128 +%+30.1f : +8127.5 +%+30.2f : +8127.53 +%+30.5f : +8127.53418 +%+30.10f : +8127.5341796875 +%+30.30f : +8127.534179687500000000000000000000 +%-f : 8127.534180 +%-.f : 8128 +%-.0f : 8128 +%-.1f : 8127.5 +%-.2f : 8127.53 +%-.5f : 8127.53418 +%-.10f : 8127.5341796875 +%-.30f : 8127.534179687500000000000000000000 +%-1f : 8127.534180 +%-1.f : 8128 +%-1.0f : 8128 +%-1.1f : 8127.5 +%-1.2f : 8127.53 +%-1.5f : 8127.53418 +%-1.10f : 8127.5341796875 +%-1.30f : 8127.534179687500000000000000000000 +%-2f : 8127.534180 +%-2.f : 8128 +%-2.0f : 8128 +%-2.1f : 8127.5 +%-2.2f : 8127.53 +%-2.5f : 8127.53418 +%-2.10f : 8127.5341796875 +%-2.30f : 8127.534179687500000000000000000000 +%-5f : 8127.534180 +%-5.f : 8128 +%-5.0f : 8128 +%-5.1f : 8127.5 +%-5.2f : 8127.53 +%-5.5f : 8127.53418 +%-5.10f : 8127.5341796875 +%-5.30f : 8127.534179687500000000000000000000 +%-10f : 8127.534180 +%-10.f : 8128 +%-10.0f : 8128 +%-10.1f : 8127.5 +%-10.2f : 8127.53 +%-10.5f : 8127.53418 +%-10.10f : 8127.5341796875 +%-10.30f : 8127.534179687500000000000000000000 +%-30f : 8127.534180 +%-30.f : 8128 +%-30.0f : 8128 +%-30.1f : 8127.5 +%-30.2f : 8127.53 +%-30.5f : 8127.53418 +%-30.10f : 8127.5341796875 +%-30.30f : 8127.534179687500000000000000000000 +%#f : 8127.534180 +%#.f : 8128. +%#.0f : 8128. +%#.1f : 8127.5 +%#.2f : 8127.53 +%#.5f : 8127.53418 +%#.10f : 8127.5341796875 +%#.30f : 8127.534179687500000000000000000000 +%#0f : 8127.534180 +%#0.f : 8128. +%#0.0f : 8128. +%#0.1f : 8127.5 +%#0.2f : 8127.53 +%#0.5f : 8127.53418 +%#0.10f : 8127.5341796875 +%#0.30f : 8127.534179687500000000000000000000 +%#1f : 8127.534180 +%#1.f : 8128. +%#1.0f : 8128. +%#1.1f : 8127.5 +%#1.2f : 8127.53 +%#1.5f : 8127.53418 +%#1.10f : 8127.5341796875 +%#1.30f : 8127.534179687500000000000000000000 +%#2f : 8127.534180 +%#2.f : 8128. +%#2.0f : 8128. +%#2.1f : 8127.5 +%#2.2f : 8127.53 +%#2.5f : 8127.53418 +%#2.10f : 8127.5341796875 +%#2.30f : 8127.534179687500000000000000000000 +%#5f : 8127.534180 +%#5.f : 8128. +%#5.0f : 8128. +%#5.1f : 8127.5 +%#5.2f : 8127.53 +%#5.5f : 8127.53418 +%#5.10f : 8127.5341796875 +%#5.30f : 8127.534179687500000000000000000000 +%#10f : 8127.534180 +%#10.f : 8128. +%#10.0f : 8128. +%#10.1f : 8127.5 +%#10.2f : 8127.53 +%#10.5f : 8127.53418 +%#10.10f : 8127.5341796875 +%#10.30f : 8127.534179687500000000000000000000 +%#30f : 8127.534180 +%#30.f : 8128. +%#30.0f : 8128. +%#30.1f : 8127.5 +%#30.2f : 8127.53 +%#30.5f : 8127.53418 +%#30.10f : 8127.5341796875 +%#30.30f : 8127.534179687500000000000000000000 +%0f : 8127.534180 +%0.f : 8128 +%0.0f : 8128 +%0.1f : 8127.5 +%0.2f : 8127.53 +%0.5f : 8127.53418 +%0.10f : 8127.5341796875 +%0.30f : 8127.534179687500000000000000000000 +%01f : 8127.534180 +%01.f : 8128 +%01.0f : 8128 +%01.1f : 8127.5 +%01.2f : 8127.53 +%01.5f : 8127.53418 +%01.10f : 8127.5341796875 +%01.30f : 8127.534179687500000000000000000000 +%02f : 8127.534180 +%02.f : 8128 +%02.0f : 8128 +%02.1f : 8127.5 +%02.2f : 8127.53 +%02.5f : 8127.53418 +%02.10f : 8127.5341796875 +%02.30f : 8127.534179687500000000000000000000 +%05f : 8127.534180 +%05.f : 08128 +%05.0f : 08128 +%05.1f : 8127.5 +%05.2f : 8127.53 +%05.5f : 8127.53418 +%05.10f : 8127.5341796875 +%05.30f : 8127.534179687500000000000000000000 +%010f : 8127.534180 +%010.f : 0000008128 +%010.0f : 0000008128 +%010.1f : 00008127.5 +%010.2f : 0008127.53 +%010.5f : 8127.53418 +%010.10f : 8127.5341796875 +%010.30f : 8127.534179687500000000000000000000 +%030f : 00000000000000000008127.534180 +%030.f : 000000000000000000000000008128 +%030.0f : 000000000000000000000000008128 +%030.1f : 0000000000000000000000008127.5 +%030.2f : 000000000000000000000008127.53 +%030.5f : 000000000000000000008127.53418 +%030.10f : 0000000000000008127.5341796875 +%030.30f : 8127.534179687500000000000000000000 +%-+f : +8127.534180 +%-+.f : +8128 +%-+.0f : +8128 +%-+.1f : +8127.5 +%-+.2f : +8127.53 +%-+.5f : +8127.53418 +%-+.10f : +8127.5341796875 +%-+.30f : +8127.534179687500000000000000000000 +%-+1f : +8127.534180 +%-+1.f : +8128 +%-+1.0f : +8128 +%-+1.1f : +8127.5 +%-+1.2f : +8127.53 +%-+1.5f : +8127.53418 +%-+1.10f : +8127.5341796875 +%-+1.30f : +8127.534179687500000000000000000000 +%-+2f : +8127.534180 +%-+2.f : +8128 +%-+2.0f : +8128 +%-+2.1f : +8127.5 +%-+2.2f : +8127.53 +%-+2.5f : +8127.53418 +%-+2.10f : +8127.5341796875 +%-+2.30f : +8127.534179687500000000000000000000 +%-+5f : +8127.534180 +%-+5.f : +8128 +%-+5.0f : +8128 +%-+5.1f : +8127.5 +%-+5.2f : +8127.53 +%-+5.5f : +8127.53418 +%-+5.10f : +8127.5341796875 +%-+5.30f : +8127.534179687500000000000000000000 +%-+10f : +8127.534180 +%-+10.f : +8128 +%-+10.0f : +8128 +%-+10.1f : +8127.5 +%-+10.2f : +8127.53 +%-+10.5f : +8127.53418 +%-+10.10f : +8127.5341796875 +%-+10.30f : +8127.534179687500000000000000000000 +%-+30f : +8127.534180 +%-+30.f : +8128 +%-+30.0f : +8128 +%-+30.1f : +8127.5 +%-+30.2f : +8127.53 +%-+30.5f : +8127.53418 +%-+30.10f : +8127.5341796875 +%-+30.30f : +8127.534179687500000000000000000000 +%#+f : +8127.534180 +%#+.f : +8128. +%#+.0f : +8128. +%#+.1f : +8127.5 +%#+.2f : +8127.53 +%#+.5f : +8127.53418 +%#+.10f : +8127.5341796875 +%#+.30f : +8127.534179687500000000000000000000 +%#+0f : +8127.534180 +%#+0.f : +8128. +%#+0.0f : +8128. +%#+0.1f : +8127.5 +%#+0.2f : +8127.53 +%#+0.5f : +8127.53418 +%#+0.10f : +8127.5341796875 +%#+0.30f : +8127.534179687500000000000000000000 +%#+1f : +8127.534180 +%#+1.f : +8128. +%#+1.0f : +8128. +%#+1.1f : +8127.5 +%#+1.2f : +8127.53 +%#+1.5f : +8127.53418 +%#+1.10f : +8127.5341796875 +%#+1.30f : +8127.534179687500000000000000000000 +%#+2f : +8127.534180 +%#+2.f : +8128. +%#+2.0f : +8128. +%#+2.1f : +8127.5 +%#+2.2f : +8127.53 +%#+2.5f : +8127.53418 +%#+2.10f : +8127.5341796875 +%#+2.30f : +8127.534179687500000000000000000000 +%#+5f : +8127.534180 +%#+5.f : +8128. +%#+5.0f : +8128. +%#+5.1f : +8127.5 +%#+5.2f : +8127.53 +%#+5.5f : +8127.53418 +%#+5.10f : +8127.5341796875 +%#+5.30f : +8127.534179687500000000000000000000 +%#+10f : +8127.534180 +%#+10.f : +8128. +%#+10.0f : +8128. +%#+10.1f : +8127.5 +%#+10.2f : +8127.53 +%#+10.5f : +8127.53418 +%#+10.10f : +8127.5341796875 +%#+10.30f : +8127.534179687500000000000000000000 +%#+30f : +8127.534180 +%#+30.f : +8128. +%#+30.0f : +8128. +%#+30.1f : +8127.5 +%#+30.2f : +8127.53 +%#+30.5f : +8127.53418 +%#+30.10f : +8127.5341796875 +%#+30.30f : +8127.534179687500000000000000000000 +%+0f : +8127.534180 +%+0.f : +8128 +%+0.0f : +8128 +%+0.1f : +8127.5 +%+0.2f : +8127.53 +%+0.5f : +8127.53418 +%+0.10f : +8127.5341796875 +%+0.30f : +8127.534179687500000000000000000000 +%+01f : +8127.534180 +%+01.f : +8128 +%+01.0f : +8128 +%+01.1f : +8127.5 +%+01.2f : +8127.53 +%+01.5f : +8127.53418 +%+01.10f : +8127.5341796875 +%+01.30f : +8127.534179687500000000000000000000 +%+02f : +8127.534180 +%+02.f : +8128 +%+02.0f : +8128 +%+02.1f : +8127.5 +%+02.2f : +8127.53 +%+02.5f : +8127.53418 +%+02.10f : +8127.5341796875 +%+02.30f : +8127.534179687500000000000000000000 +%+05f : +8127.534180 +%+05.f : +8128 +%+05.0f : +8128 +%+05.1f : +8127.5 +%+05.2f : +8127.53 +%+05.5f : +8127.53418 +%+05.10f : +8127.5341796875 +%+05.30f : +8127.534179687500000000000000000000 +%+010f : +8127.534180 +%+010.f : +000008128 +%+010.0f : +000008128 +%+010.1f : +0008127.5 +%+010.2f : +008127.53 +%+010.5f : +8127.53418 +%+010.10f : +8127.5341796875 +%+010.30f : +8127.534179687500000000000000000000 +%+030f : +0000000000000000008127.534180 +%+030.f : +00000000000000000000000008128 +%+030.0f : +00000000000000000000000008128 +%+030.1f : +000000000000000000000008127.5 +%+030.2f : +00000000000000000000008127.53 +%+030.5f : +00000000000000000008127.53418 +%+030.10f : +000000000000008127.5341796875 +%+030.30f : +8127.534179687500000000000000000000 +%+-f : +8127.534180 +%+-.f : +8128 +%+-.0f : +8128 +%+-.1f : +8127.5 +%+-.2f : +8127.53 +%+-.5f : +8127.53418 +%+-.10f : +8127.5341796875 +%+-.30f : +8127.534179687500000000000000000000 +%+-1f : +8127.534180 +%+-1.f : +8128 +%+-1.0f : +8128 +%+-1.1f : +8127.5 +%+-1.2f : +8127.53 +%+-1.5f : +8127.53418 +%+-1.10f : +8127.5341796875 +%+-1.30f : +8127.534179687500000000000000000000 +%+-2f : +8127.534180 +%+-2.f : +8128 +%+-2.0f : +8128 +%+-2.1f : +8127.5 +%+-2.2f : +8127.53 +%+-2.5f : +8127.53418 +%+-2.10f : +8127.5341796875 +%+-2.30f : +8127.534179687500000000000000000000 +%+-5f : +8127.534180 +%+-5.f : +8128 +%+-5.0f : +8128 +%+-5.1f : +8127.5 +%+-5.2f : +8127.53 +%+-5.5f : +8127.53418 +%+-5.10f : +8127.5341796875 +%+-5.30f : +8127.534179687500000000000000000000 +%+-10f : +8127.534180 +%+-10.f : +8128 +%+-10.0f : +8128 +%+-10.1f : +8127.5 +%+-10.2f : +8127.53 +%+-10.5f : +8127.53418 +%+-10.10f : +8127.5341796875 +%+-10.30f : +8127.534179687500000000000000000000 +%+-30f : +8127.534180 +%+-30.f : +8128 +%+-30.0f : +8128 +%+-30.1f : +8127.5 +%+-30.2f : +8127.53 +%+-30.5f : +8127.53418 +%+-30.10f : +8127.5341796875 +%+-30.30f : +8127.534179687500000000000000000000 +%#-f : 8127.534180 +%#-.f : 8128. +%#-.0f : 8128. +%#-.1f : 8127.5 +%#-.2f : 8127.53 +%#-.5f : 8127.53418 +%#-.10f : 8127.5341796875 +%#-.30f : 8127.534179687500000000000000000000 +%#-1f : 8127.534180 +%#-1.f : 8128. +%#-1.0f : 8128. +%#-1.1f : 8127.5 +%#-1.2f : 8127.53 +%#-1.5f : 8127.53418 +%#-1.10f : 8127.5341796875 +%#-1.30f : 8127.534179687500000000000000000000 +%#-2f : 8127.534180 +%#-2.f : 8128. +%#-2.0f : 8128. +%#-2.1f : 8127.5 +%#-2.2f : 8127.53 +%#-2.5f : 8127.53418 +%#-2.10f : 8127.5341796875 +%#-2.30f : 8127.534179687500000000000000000000 +%#-5f : 8127.534180 +%#-5.f : 8128. +%#-5.0f : 8128. +%#-5.1f : 8127.5 +%#-5.2f : 8127.53 +%#-5.5f : 8127.53418 +%#-5.10f : 8127.5341796875 +%#-5.30f : 8127.534179687500000000000000000000 +%#-10f : 8127.534180 +%#-10.f : 8128. +%#-10.0f : 8128. +%#-10.1f : 8127.5 +%#-10.2f : 8127.53 +%#-10.5f : 8127.53418 +%#-10.10f : 8127.5341796875 +%#-10.30f : 8127.534179687500000000000000000000 +%#-30f : 8127.534180 +%#-30.f : 8128. +%#-30.0f : 8128. +%#-30.1f : 8127.5 +%#-30.2f : 8127.53 +%#-30.5f : 8127.53418 +%#-30.10f : 8127.5341796875 +%#-30.30f : 8127.534179687500000000000000000000 +%+#f : +8127.534180 +%+#.f : +8128. +%+#.0f : +8128. +%+#.1f : +8127.5 +%+#.2f : +8127.53 +%+#.5f : +8127.53418 +%+#.10f : +8127.5341796875 +%+#.30f : +8127.534179687500000000000000000000 +%+#0f : +8127.534180 +%+#0.f : +8128. +%+#0.0f : +8128. +%+#0.1f : +8127.5 +%+#0.2f : +8127.53 +%+#0.5f : +8127.53418 +%+#0.10f : +8127.5341796875 +%+#0.30f : +8127.534179687500000000000000000000 +%+#1f : +8127.534180 +%+#1.f : +8128. +%+#1.0f : +8128. +%+#1.1f : +8127.5 +%+#1.2f : +8127.53 +%+#1.5f : +8127.53418 +%+#1.10f : +8127.5341796875 +%+#1.30f : +8127.534179687500000000000000000000 +%+#2f : +8127.534180 +%+#2.f : +8128. +%+#2.0f : +8128. +%+#2.1f : +8127.5 +%+#2.2f : +8127.53 +%+#2.5f : +8127.53418 +%+#2.10f : +8127.5341796875 +%+#2.30f : +8127.534179687500000000000000000000 +%+#5f : +8127.534180 +%+#5.f : +8128. +%+#5.0f : +8128. +%+#5.1f : +8127.5 +%+#5.2f : +8127.53 +%+#5.5f : +8127.53418 +%+#5.10f : +8127.5341796875 +%+#5.30f : +8127.534179687500000000000000000000 +%+#10f : +8127.534180 +%+#10.f : +8128. +%+#10.0f : +8128. +%+#10.1f : +8127.5 +%+#10.2f : +8127.53 +%+#10.5f : +8127.53418 +%+#10.10f : +8127.5341796875 +%+#10.30f : +8127.534179687500000000000000000000 +%+#30f : +8127.534180 +%+#30.f : +8128. +%+#30.0f : +8128. +%+#30.1f : +8127.5 +%+#30.2f : +8127.53 +%+#30.5f : +8127.53418 +%+#30.10f : +8127.5341796875 +%+#30.30f : +8127.534179687500000000000000000000 +%-#f : 8127.534180 +%-#.f : 8128. +%-#.0f : 8128. +%-#.1f : 8127.5 +%-#.2f : 8127.53 +%-#.5f : 8127.53418 +%-#.10f : 8127.5341796875 +%-#.30f : 8127.534179687500000000000000000000 +%-#1f : 8127.534180 +%-#1.f : 8128. +%-#1.0f : 8128. +%-#1.1f : 8127.5 +%-#1.2f : 8127.53 +%-#1.5f : 8127.53418 +%-#1.10f : 8127.5341796875 +%-#1.30f : 8127.534179687500000000000000000000 +%-#2f : 8127.534180 +%-#2.f : 8128. +%-#2.0f : 8128. +%-#2.1f : 8127.5 +%-#2.2f : 8127.53 +%-#2.5f : 8127.53418 +%-#2.10f : 8127.5341796875 +%-#2.30f : 8127.534179687500000000000000000000 +%-#5f : 8127.534180 +%-#5.f : 8128. +%-#5.0f : 8128. +%-#5.1f : 8127.5 +%-#5.2f : 8127.53 +%-#5.5f : 8127.53418 +%-#5.10f : 8127.5341796875 +%-#5.30f : 8127.534179687500000000000000000000 +%-#10f : 8127.534180 +%-#10.f : 8128. +%-#10.0f : 8128. +%-#10.1f : 8127.5 +%-#10.2f : 8127.53 +%-#10.5f : 8127.53418 +%-#10.10f : 8127.5341796875 +%-#10.30f : 8127.534179687500000000000000000000 +%-#30f : 8127.534180 +%-#30.f : 8128. +%-#30.0f : 8128. +%-#30.1f : 8127.5 +%-#30.2f : 8127.53 +%-#30.5f : 8127.53418 +%-#30.10f : 8127.5341796875 +%-#30.30f : 8127.534179687500000000000000000000 +%0#f : 8127.534180 +%0#.f : 8128. +%0#.0f : 8128. +%0#.1f : 8127.5 +%0#.2f : 8127.53 +%0#.5f : 8127.53418 +%0#.10f : 8127.5341796875 +%0#.30f : 8127.534179687500000000000000000000 +%0#1f : 8127.534180 +%0#1.f : 8128. +%0#1.0f : 8128. +%0#1.1f : 8127.5 +%0#1.2f : 8127.53 +%0#1.5f : 8127.53418 +%0#1.10f : 8127.5341796875 +%0#1.30f : 8127.534179687500000000000000000000 +%0#2f : 8127.534180 +%0#2.f : 8128. +%0#2.0f : 8128. +%0#2.1f : 8127.5 +%0#2.2f : 8127.53 +%0#2.5f : 8127.53418 +%0#2.10f : 8127.5341796875 +%0#2.30f : 8127.534179687500000000000000000000 +%0#5f : 8127.534180 +%0#5.f : 8128. +%0#5.0f : 8128. +%0#5.1f : 8127.5 +%0#5.2f : 8127.53 +%0#5.5f : 8127.53418 +%0#5.10f : 8127.5341796875 +%0#5.30f : 8127.534179687500000000000000000000 +%0#10f : 8127.534180 +%0#10.f : 000008128. +%0#10.0f : 000008128. +%0#10.1f : 00008127.5 +%0#10.2f : 0008127.53 +%0#10.5f : 8127.53418 +%0#10.10f : 8127.5341796875 +%0#10.30f : 8127.534179687500000000000000000000 +%0#30f : 00000000000000000008127.534180 +%0#30.f : 00000000000000000000000008128. +%0#30.0f : 00000000000000000000000008128. +%0#30.1f : 0000000000000000000000008127.5 +%0#30.2f : 000000000000000000000008127.53 +%0#30.5f : 000000000000000000008127.53418 +%0#30.10f : 0000000000000008127.5341796875 +%0#30.30f : 8127.534179687500000000000000000000 +%+0f : +8127.534180 +%+0.f : +8128 +%+0.0f : +8128 +%+0.1f : +8127.5 +%+0.2f : +8127.53 +%+0.5f : +8127.53418 +%+0.10f : +8127.5341796875 +%+0.30f : +8127.534179687500000000000000000000 +%+01f : +8127.534180 +%+01.f : +8128 +%+01.0f : +8128 +%+01.1f : +8127.5 +%+01.2f : +8127.53 +%+01.5f : +8127.53418 +%+01.10f : +8127.5341796875 +%+01.30f : +8127.534179687500000000000000000000 +%+02f : +8127.534180 +%+02.f : +8128 +%+02.0f : +8128 +%+02.1f : +8127.5 +%+02.2f : +8127.53 +%+02.5f : +8127.53418 +%+02.10f : +8127.5341796875 +%+02.30f : +8127.534179687500000000000000000000 +%+05f : +8127.534180 +%+05.f : +8128 +%+05.0f : +8128 +%+05.1f : +8127.5 +%+05.2f : +8127.53 +%+05.5f : +8127.53418 +%+05.10f : +8127.5341796875 +%+05.30f : +8127.534179687500000000000000000000 +%+010f : +8127.534180 +%+010.f : +000008128 +%+010.0f : +000008128 +%+010.1f : +0008127.5 +%+010.2f : +008127.53 +%+010.5f : +8127.53418 +%+010.10f : +8127.5341796875 +%+010.30f : +8127.534179687500000000000000000000 +%+030f : +0000000000000000008127.534180 +%+030.f : +00000000000000000000000008128 +%+030.0f : +00000000000000000000000008128 +%+030.1f : +000000000000000000000008127.5 +%+030.2f : +00000000000000000000008127.53 +%+030.5f : +00000000000000000008127.53418 +%+030.10f : +000000000000008127.5341796875 +%+030.30f : +8127.534179687500000000000000000000 +%#0f : 8127.534180 +%#0.f : 8128. +%#0.0f : 8128. +%#0.1f : 8127.5 +%#0.2f : 8127.53 +%#0.5f : 8127.53418 +%#0.10f : 8127.5341796875 +%#0.30f : 8127.534179687500000000000000000000 +%#01f : 8127.534180 +%#01.f : 8128. +%#01.0f : 8128. +%#01.1f : 8127.5 +%#01.2f : 8127.53 +%#01.5f : 8127.53418 +%#01.10f : 8127.5341796875 +%#01.30f : 8127.534179687500000000000000000000 +%#02f : 8127.534180 +%#02.f : 8128. +%#02.0f : 8128. +%#02.1f : 8127.5 +%#02.2f : 8127.53 +%#02.5f : 8127.53418 +%#02.10f : 8127.5341796875 +%#02.30f : 8127.534179687500000000000000000000 +%#05f : 8127.534180 +%#05.f : 8128. +%#05.0f : 8128. +%#05.1f : 8127.5 +%#05.2f : 8127.53 +%#05.5f : 8127.53418 +%#05.10f : 8127.5341796875 +%#05.30f : 8127.534179687500000000000000000000 +%#010f : 8127.534180 +%#010.f : 000008128. +%#010.0f : 000008128. +%#010.1f : 00008127.5 +%#010.2f : 0008127.53 +%#010.5f : 8127.53418 +%#010.10f : 8127.5341796875 +%#010.30f : 8127.534179687500000000000000000000 +%#030f : 00000000000000000008127.534180 +%#030.f : 00000000000000000000000008128. +%#030.0f : 00000000000000000000000008128. +%#030.1f : 0000000000000000000000008127.5 +%#030.2f : 000000000000000000000008127.53 +%#030.5f : 000000000000000000008127.53418 +%#030.10f : 0000000000000008127.5341796875 +%#030.30f : 8127.534179687500000000000000000000 +%-+#f : +8127.534180 +%-+#.f : +8128. +%-+#.0f : +8128. +%-+#.1f : +8127.5 +%-+#.2f : +8127.53 +%-+#.5f : +8127.53418 +%-+#.10f : +8127.5341796875 +%-+#.30f : +8127.534179687500000000000000000000 +%-+#1f : +8127.534180 +%-+#1.f : +8128. +%-+#1.0f : +8128. +%-+#1.1f : +8127.5 +%-+#1.2f : +8127.53 +%-+#1.5f : +8127.53418 +%-+#1.10f : +8127.5341796875 +%-+#1.30f : +8127.534179687500000000000000000000 +%-+#2f : +8127.534180 +%-+#2.f : +8128. +%-+#2.0f : +8128. +%-+#2.1f : +8127.5 +%-+#2.2f : +8127.53 +%-+#2.5f : +8127.53418 +%-+#2.10f : +8127.5341796875 +%-+#2.30f : +8127.534179687500000000000000000000 +%-+#5f : +8127.534180 +%-+#5.f : +8128. +%-+#5.0f : +8128. +%-+#5.1f : +8127.5 +%-+#5.2f : +8127.53 +%-+#5.5f : +8127.53418 +%-+#5.10f : +8127.5341796875 +%-+#5.30f : +8127.534179687500000000000000000000 +%-+#10f : +8127.534180 +%-+#10.f : +8128. +%-+#10.0f : +8128. +%-+#10.1f : +8127.5 +%-+#10.2f : +8127.53 +%-+#10.5f : +8127.53418 +%-+#10.10f : +8127.5341796875 +%-+#10.30f : +8127.534179687500000000000000000000 +%-+#30f : +8127.534180 +%-+#30.f : +8128. +%-+#30.0f : +8128. +%-+#30.1f : +8127.5 +%-+#30.2f : +8127.53 +%-+#30.5f : +8127.53418 +%-+#30.10f : +8127.5341796875 +%-+#30.30f : +8127.534179687500000000000000000000 +%0+#f : +8127.534180 +%0+#.f : +8128. +%0+#.0f : +8128. +%0+#.1f : +8127.5 +%0+#.2f : +8127.53 +%0+#.5f : +8127.53418 +%0+#.10f : +8127.5341796875 +%0+#.30f : +8127.534179687500000000000000000000 +%0+#1f : +8127.534180 +%0+#1.f : +8128. +%0+#1.0f : +8128. +%0+#1.1f : +8127.5 +%0+#1.2f : +8127.53 +%0+#1.5f : +8127.53418 +%0+#1.10f : +8127.5341796875 +%0+#1.30f : +8127.534179687500000000000000000000 +%0+#2f : +8127.534180 +%0+#2.f : +8128. +%0+#2.0f : +8128. +%0+#2.1f : +8127.5 +%0+#2.2f : +8127.53 +%0+#2.5f : +8127.53418 +%0+#2.10f : +8127.5341796875 +%0+#2.30f : +8127.534179687500000000000000000000 +%0+#5f : +8127.534180 +%0+#5.f : +8128. +%0+#5.0f : +8128. +%0+#5.1f : +8127.5 +%0+#5.2f : +8127.53 +%0+#5.5f : +8127.53418 +%0+#5.10f : +8127.5341796875 +%0+#5.30f : +8127.534179687500000000000000000000 +%0+#10f : +8127.534180 +%0+#10.f : +00008128. +%0+#10.0f : +00008128. +%0+#10.1f : +0008127.5 +%0+#10.2f : +008127.53 +%0+#10.5f : +8127.53418 +%0+#10.10f : +8127.5341796875 +%0+#10.30f : +8127.534179687500000000000000000000 +%0+#30f : +0000000000000000008127.534180 +%0+#30.f : +0000000000000000000000008128. +%0+#30.0f : +0000000000000000000000008128. +%0+#30.1f : +000000000000000000000008127.5 +%0+#30.2f : +00000000000000000000008127.53 +%0+#30.5f : +00000000000000000008127.53418 +%0+#30.10f : +000000000000008127.5341796875 +%0+#30.30f : +8127.534179687500000000000000000000 +%#-+f : +8127.534180 +%#-+.f : +8128. +%#-+.0f : +8128. +%#-+.1f : +8127.5 +%#-+.2f : +8127.53 +%#-+.5f : +8127.53418 +%#-+.10f : +8127.5341796875 +%#-+.30f : +8127.534179687500000000000000000000 +%#-+1f : +8127.534180 +%#-+1.f : +8128. +%#-+1.0f : +8128. +%#-+1.1f : +8127.5 +%#-+1.2f : +8127.53 +%#-+1.5f : +8127.53418 +%#-+1.10f : +8127.5341796875 +%#-+1.30f : +8127.534179687500000000000000000000 +%#-+2f : +8127.534180 +%#-+2.f : +8128. +%#-+2.0f : +8128. +%#-+2.1f : +8127.5 +%#-+2.2f : +8127.53 +%#-+2.5f : +8127.53418 +%#-+2.10f : +8127.5341796875 +%#-+2.30f : +8127.534179687500000000000000000000 +%#-+5f : +8127.534180 +%#-+5.f : +8128. +%#-+5.0f : +8128. +%#-+5.1f : +8127.5 +%#-+5.2f : +8127.53 +%#-+5.5f : +8127.53418 +%#-+5.10f : +8127.5341796875 +%#-+5.30f : +8127.534179687500000000000000000000 +%#-+10f : +8127.534180 +%#-+10.f : +8128. +%#-+10.0f : +8128. +%#-+10.1f : +8127.5 +%#-+10.2f : +8127.53 +%#-+10.5f : +8127.53418 +%#-+10.10f : +8127.5341796875 +%#-+10.30f : +8127.534179687500000000000000000000 +%#-+30f : +8127.534180 +%#-+30.f : +8128. +%#-+30.0f : +8128. +%#-+30.1f : +8127.5 +%#-+30.2f : +8127.53 +%#-+30.5f : +8127.53418 +%#-+30.10f : +8127.5341796875 +%#-+30.30f : +8127.534179687500000000000000000000 +%+#-f : +8127.534180 +%+#-.f : +8128. +%+#-.0f : +8128. +%+#-.1f : +8127.5 +%+#-.2f : +8127.53 +%+#-.5f : +8127.53418 +%+#-.10f : +8127.5341796875 +%+#-.30f : +8127.534179687500000000000000000000 +%+#-1f : +8127.534180 +%+#-1.f : +8128. +%+#-1.0f : +8128. +%+#-1.1f : +8127.5 +%+#-1.2f : +8127.53 +%+#-1.5f : +8127.53418 +%+#-1.10f : +8127.5341796875 +%+#-1.30f : +8127.534179687500000000000000000000 +%+#-2f : +8127.534180 +%+#-2.f : +8128. +%+#-2.0f : +8128. +%+#-2.1f : +8127.5 +%+#-2.2f : +8127.53 +%+#-2.5f : +8127.53418 +%+#-2.10f : +8127.5341796875 +%+#-2.30f : +8127.534179687500000000000000000000 +%+#-5f : +8127.534180 +%+#-5.f : +8128. +%+#-5.0f : +8128. +%+#-5.1f : +8127.5 +%+#-5.2f : +8127.53 +%+#-5.5f : +8127.53418 +%+#-5.10f : +8127.5341796875 +%+#-5.30f : +8127.534179687500000000000000000000 +%+#-10f : +8127.534180 +%+#-10.f : +8128. +%+#-10.0f : +8128. +%+#-10.1f : +8127.5 +%+#-10.2f : +8127.53 +%+#-10.5f : +8127.53418 +%+#-10.10f : +8127.5341796875 +%+#-10.30f : +8127.534179687500000000000000000000 +%+#-30f : +8127.534180 +%+#-30.f : +8128. +%+#-30.0f : +8128. +%+#-30.1f : +8127.5 +%+#-30.2f : +8127.53 +%+#-30.5f : +8127.53418 +%+#-30.10f : +8127.5341796875 +%+#-30.30f : +8127.534179687500000000000000000000 +%+lf : +8127.534000 +%+.lf : +8128 +%+.0lf : +8128 +%+.1lf : +8127.5 +%+.2lf : +8127.53 +%+.5lf : +8127.53400 +%+.10lf : +8127.5340000000 +%+.30lf : +8127.533999999999650754030000000000 +%+0lf : +8127.534000 +%+0.lf : +8128 +%+0.0lf : +8128 +%+0.1lf : +8127.5 +%+0.2lf : +8127.53 +%+0.5lf : +8127.53400 +%+0.10lf : +8127.5340000000 +%+0.30lf : +8127.533999999999650754030000000000 +%+1lf : +8127.534000 +%+1.lf : +8128 +%+1.0lf : +8128 +%+1.1lf : +8127.5 +%+1.2lf : +8127.53 +%+1.5lf : +8127.53400 +%+1.10lf : +8127.5340000000 +%+1.30lf : +8127.533999999999650754030000000000 +%+2lf : +8127.534000 +%+2.lf : +8128 +%+2.0lf : +8128 +%+2.1lf : +8127.5 +%+2.2lf : +8127.53 +%+2.5lf : +8127.53400 +%+2.10lf : +8127.5340000000 +%+2.30lf : +8127.533999999999650754030000000000 +%+5lf : +8127.534000 +%+5.lf : +8128 +%+5.0lf : +8128 +%+5.1lf : +8127.5 +%+5.2lf : +8127.53 +%+5.5lf : +8127.53400 +%+5.10lf : +8127.5340000000 +%+5.30lf : +8127.533999999999650754030000000000 +%+10lf : +8127.534000 +%+10.lf : +8128 +%+10.0lf : +8128 +%+10.1lf : +8127.5 +%+10.2lf : +8127.53 +%+10.5lf : +8127.53400 +%+10.10lf : +8127.5340000000 +%+10.30lf : +8127.533999999999650754030000000000 +%+30lf : +8127.534000 +%+30.lf : +8128 +%+30.0lf : +8128 +%+30.1lf : +8127.5 +%+30.2lf : +8127.53 +%+30.5lf : +8127.53400 +%+30.10lf : +8127.5340000000 +%+30.30lf : +8127.533999999999650754030000000000 +%-lf : 8127.534000 +%-.lf : 8128 +%-.0lf : 8128 +%-.1lf : 8127.5 +%-.2lf : 8127.53 +%-.5lf : 8127.53400 +%-.10lf : 8127.5340000000 +%-.30lf : 8127.533999999999650754030000000000 +%-1lf : 8127.534000 +%-1.lf : 8128 +%-1.0lf : 8128 +%-1.1lf : 8127.5 +%-1.2lf : 8127.53 +%-1.5lf : 8127.53400 +%-1.10lf : 8127.5340000000 +%-1.30lf : 8127.533999999999650754030000000000 +%-2lf : 8127.534000 +%-2.lf : 8128 +%-2.0lf : 8128 +%-2.1lf : 8127.5 +%-2.2lf : 8127.53 +%-2.5lf : 8127.53400 +%-2.10lf : 8127.5340000000 +%-2.30lf : 8127.533999999999650754030000000000 +%-5lf : 8127.534000 +%-5.lf : 8128 +%-5.0lf : 8128 +%-5.1lf : 8127.5 +%-5.2lf : 8127.53 +%-5.5lf : 8127.53400 +%-5.10lf : 8127.5340000000 +%-5.30lf : 8127.533999999999650754030000000000 +%-10lf : 8127.534000 +%-10.lf : 8128 +%-10.0lf : 8128 +%-10.1lf : 8127.5 +%-10.2lf : 8127.53 +%-10.5lf : 8127.53400 +%-10.10lf : 8127.5340000000 +%-10.30lf : 8127.533999999999650754030000000000 +%-30lf : 8127.534000 +%-30.lf : 8128 +%-30.0lf : 8128 +%-30.1lf : 8127.5 +%-30.2lf : 8127.53 +%-30.5lf : 8127.53400 +%-30.10lf : 8127.5340000000 +%-30.30lf : 8127.533999999999650754030000000000 +%#lf : 8127.534000 +%#.lf : 8128. +%#.0lf : 8128. +%#.1lf : 8127.5 +%#.2lf : 8127.53 +%#.5lf : 8127.53400 +%#.10lf : 8127.5340000000 +%#.30lf : 8127.533999999999650754030000000000 +%#0lf : 8127.534000 +%#0.lf : 8128. +%#0.0lf : 8128. +%#0.1lf : 8127.5 +%#0.2lf : 8127.53 +%#0.5lf : 8127.53400 +%#0.10lf : 8127.5340000000 +%#0.30lf : 8127.533999999999650754030000000000 +%#1lf : 8127.534000 +%#1.lf : 8128. +%#1.0lf : 8128. +%#1.1lf : 8127.5 +%#1.2lf : 8127.53 +%#1.5lf : 8127.53400 +%#1.10lf : 8127.5340000000 +%#1.30lf : 8127.533999999999650754030000000000 +%#2lf : 8127.534000 +%#2.lf : 8128. +%#2.0lf : 8128. +%#2.1lf : 8127.5 +%#2.2lf : 8127.53 +%#2.5lf : 8127.53400 +%#2.10lf : 8127.5340000000 +%#2.30lf : 8127.533999999999650754030000000000 +%#5lf : 8127.534000 +%#5.lf : 8128. +%#5.0lf : 8128. +%#5.1lf : 8127.5 +%#5.2lf : 8127.53 +%#5.5lf : 8127.53400 +%#5.10lf : 8127.5340000000 +%#5.30lf : 8127.533999999999650754030000000000 +%#10lf : 8127.534000 +%#10.lf : 8128. +%#10.0lf : 8128. +%#10.1lf : 8127.5 +%#10.2lf : 8127.53 +%#10.5lf : 8127.53400 +%#10.10lf : 8127.5340000000 +%#10.30lf : 8127.533999999999650754030000000000 +%#30lf : 8127.534000 +%#30.lf : 8128. +%#30.0lf : 8128. +%#30.1lf : 8127.5 +%#30.2lf : 8127.53 +%#30.5lf : 8127.53400 +%#30.10lf : 8127.5340000000 +%#30.30lf : 8127.533999999999650754030000000000 +%0lf : 8127.534000 +%0.lf : 8128 +%0.0lf : 8128 +%0.1lf : 8127.5 +%0.2lf : 8127.53 +%0.5lf : 8127.53400 +%0.10lf : 8127.5340000000 +%0.30lf : 8127.533999999999650754030000000000 +%01lf : 8127.534000 +%01.lf : 8128 +%01.0lf : 8128 +%01.1lf : 8127.5 +%01.2lf : 8127.53 +%01.5lf : 8127.53400 +%01.10lf : 8127.5340000000 +%01.30lf : 8127.533999999999650754030000000000 +%02lf : 8127.534000 +%02.lf : 8128 +%02.0lf : 8128 +%02.1lf : 8127.5 +%02.2lf : 8127.53 +%02.5lf : 8127.53400 +%02.10lf : 8127.5340000000 +%02.30lf : 8127.533999999999650754030000000000 +%05lf : 8127.534000 +%05.lf : 08128 +%05.0lf : 08128 +%05.1lf : 8127.5 +%05.2lf : 8127.53 +%05.5lf : 8127.53400 +%05.10lf : 8127.5340000000 +%05.30lf : 8127.533999999999650754030000000000 +%010lf : 8127.534000 +%010.lf : 0000008128 +%010.0lf : 0000008128 +%010.1lf : 00008127.5 +%010.2lf : 0008127.53 +%010.5lf : 8127.53400 +%010.10lf : 8127.5340000000 +%010.30lf : 8127.533999999999650754030000000000 +%030lf : 00000000000000000008127.534000 +%030.lf : 000000000000000000000000008128 +%030.0lf : 000000000000000000000000008128 +%030.1lf : 0000000000000000000000008127.5 +%030.2lf : 000000000000000000000008127.53 +%030.5lf : 000000000000000000008127.53400 +%030.10lf : 0000000000000008127.5340000000 +%030.30lf : 8127.533999999999650754030000000000 +%-+lf : +8127.534000 +%-+.lf : +8128 +%-+.0lf : +8128 +%-+.1lf : +8127.5 +%-+.2lf : +8127.53 +%-+.5lf : +8127.53400 +%-+.10lf : +8127.5340000000 +%-+.30lf : +8127.533999999999650754030000000000 +%-+1lf : +8127.534000 +%-+1.lf : +8128 +%-+1.0lf : +8128 +%-+1.1lf : +8127.5 +%-+1.2lf : +8127.53 +%-+1.5lf : +8127.53400 +%-+1.10lf : +8127.5340000000 +%-+1.30lf : +8127.533999999999650754030000000000 +%-+2lf : +8127.534000 +%-+2.lf : +8128 +%-+2.0lf : +8128 +%-+2.1lf : +8127.5 +%-+2.2lf : +8127.53 +%-+2.5lf : +8127.53400 +%-+2.10lf : +8127.5340000000 +%-+2.30lf : +8127.533999999999650754030000000000 +%-+5lf : +8127.534000 +%-+5.lf : +8128 +%-+5.0lf : +8128 +%-+5.1lf : +8127.5 +%-+5.2lf : +8127.53 +%-+5.5lf : +8127.53400 +%-+5.10lf : +8127.5340000000 +%-+5.30lf : +8127.533999999999650754030000000000 +%-+10lf : +8127.534000 +%-+10.lf : +8128 +%-+10.0lf : +8128 +%-+10.1lf : +8127.5 +%-+10.2lf : +8127.53 +%-+10.5lf : +8127.53400 +%-+10.10lf : +8127.5340000000 +%-+10.30lf : +8127.533999999999650754030000000000 +%-+30lf : +8127.534000 +%-+30.lf : +8128 +%-+30.0lf : +8128 +%-+30.1lf : +8127.5 +%-+30.2lf : +8127.53 +%-+30.5lf : +8127.53400 +%-+30.10lf : +8127.5340000000 +%-+30.30lf : +8127.533999999999650754030000000000 +%#+lf : +8127.534000 +%#+.lf : +8128. +%#+.0lf : +8128. +%#+.1lf : +8127.5 +%#+.2lf : +8127.53 +%#+.5lf : +8127.53400 +%#+.10lf : +8127.5340000000 +%#+.30lf : +8127.533999999999650754030000000000 +%#+0lf : +8127.534000 +%#+0.lf : +8128. +%#+0.0lf : +8128. +%#+0.1lf : +8127.5 +%#+0.2lf : +8127.53 +%#+0.5lf : +8127.53400 +%#+0.10lf : +8127.5340000000 +%#+0.30lf : +8127.533999999999650754030000000000 +%#+1lf : +8127.534000 +%#+1.lf : +8128. +%#+1.0lf : +8128. +%#+1.1lf : +8127.5 +%#+1.2lf : +8127.53 +%#+1.5lf : +8127.53400 +%#+1.10lf : +8127.5340000000 +%#+1.30lf : +8127.533999999999650754030000000000 +%#+2lf : +8127.534000 +%#+2.lf : +8128. +%#+2.0lf : +8128. +%#+2.1lf : +8127.5 +%#+2.2lf : +8127.53 +%#+2.5lf : +8127.53400 +%#+2.10lf : +8127.5340000000 +%#+2.30lf : +8127.533999999999650754030000000000 +%#+5lf : +8127.534000 +%#+5.lf : +8128. +%#+5.0lf : +8128. +%#+5.1lf : +8127.5 +%#+5.2lf : +8127.53 +%#+5.5lf : +8127.53400 +%#+5.10lf : +8127.5340000000 +%#+5.30lf : +8127.533999999999650754030000000000 +%#+10lf : +8127.534000 +%#+10.lf : +8128. +%#+10.0lf : +8128. +%#+10.1lf : +8127.5 +%#+10.2lf : +8127.53 +%#+10.5lf : +8127.53400 +%#+10.10lf : +8127.5340000000 +%#+10.30lf : +8127.533999999999650754030000000000 +%#+30lf : +8127.534000 +%#+30.lf : +8128. +%#+30.0lf : +8128. +%#+30.1lf : +8127.5 +%#+30.2lf : +8127.53 +%#+30.5lf : +8127.53400 +%#+30.10lf : +8127.5340000000 +%#+30.30lf : +8127.533999999999650754030000000000 +%+0lf : +8127.534000 +%+0.lf : +8128 +%+0.0lf : +8128 +%+0.1lf : +8127.5 +%+0.2lf : +8127.53 +%+0.5lf : +8127.53400 +%+0.10lf : +8127.5340000000 +%+0.30lf : +8127.533999999999650754030000000000 +%+01lf : +8127.534000 +%+01.lf : +8128 +%+01.0lf : +8128 +%+01.1lf : +8127.5 +%+01.2lf : +8127.53 +%+01.5lf : +8127.53400 +%+01.10lf : +8127.5340000000 +%+01.30lf : +8127.533999999999650754030000000000 +%+02lf : +8127.534000 +%+02.lf : +8128 +%+02.0lf : +8128 +%+02.1lf : +8127.5 +%+02.2lf : +8127.53 +%+02.5lf : +8127.53400 +%+02.10lf : +8127.5340000000 +%+02.30lf : +8127.533999999999650754030000000000 +%+05lf : +8127.534000 +%+05.lf : +8128 +%+05.0lf : +8128 +%+05.1lf : +8127.5 +%+05.2lf : +8127.53 +%+05.5lf : +8127.53400 +%+05.10lf : +8127.5340000000 +%+05.30lf : +8127.533999999999650754030000000000 +%+010lf : +8127.534000 +%+010.lf : +000008128 +%+010.0lf : +000008128 +%+010.1lf : +0008127.5 +%+010.2lf : +008127.53 +%+010.5lf : +8127.53400 +%+010.10lf : +8127.5340000000 +%+010.30lf : +8127.533999999999650754030000000000 +%+030lf : +0000000000000000008127.534000 +%+030.lf : +00000000000000000000000008128 +%+030.0lf : +00000000000000000000000008128 +%+030.1lf : +000000000000000000000008127.5 +%+030.2lf : +00000000000000000000008127.53 +%+030.5lf : +00000000000000000008127.53400 +%+030.10lf : +000000000000008127.5340000000 +%+030.30lf : +8127.533999999999650754030000000000 +%+-lf : +8127.534000 +%+-.lf : +8128 +%+-.0lf : +8128 +%+-.1lf : +8127.5 +%+-.2lf : +8127.53 +%+-.5lf : +8127.53400 +%+-.10lf : +8127.5340000000 +%+-.30lf : +8127.533999999999650754030000000000 +%+-1lf : +8127.534000 +%+-1.lf : +8128 +%+-1.0lf : +8128 +%+-1.1lf : +8127.5 +%+-1.2lf : +8127.53 +%+-1.5lf : +8127.53400 +%+-1.10lf : +8127.5340000000 +%+-1.30lf : +8127.533999999999650754030000000000 +%+-2lf : +8127.534000 +%+-2.lf : +8128 +%+-2.0lf : +8128 +%+-2.1lf : +8127.5 +%+-2.2lf : +8127.53 +%+-2.5lf : +8127.53400 +%+-2.10lf : +8127.5340000000 +%+-2.30lf : +8127.533999999999650754030000000000 +%+-5lf : +8127.534000 +%+-5.lf : +8128 +%+-5.0lf : +8128 +%+-5.1lf : +8127.5 +%+-5.2lf : +8127.53 +%+-5.5lf : +8127.53400 +%+-5.10lf : +8127.5340000000 +%+-5.30lf : +8127.533999999999650754030000000000 +%+-10lf : +8127.534000 +%+-10.lf : +8128 +%+-10.0lf : +8128 +%+-10.1lf : +8127.5 +%+-10.2lf : +8127.53 +%+-10.5lf : +8127.53400 +%+-10.10lf : +8127.5340000000 +%+-10.30lf : +8127.533999999999650754030000000000 +%+-30lf : +8127.534000 +%+-30.lf : +8128 +%+-30.0lf : +8128 +%+-30.1lf : +8127.5 +%+-30.2lf : +8127.53 +%+-30.5lf : +8127.53400 +%+-30.10lf : +8127.5340000000 +%+-30.30lf : +8127.533999999999650754030000000000 +%#-lf : 8127.534000 +%#-.lf : 8128. +%#-.0lf : 8128. +%#-.1lf : 8127.5 +%#-.2lf : 8127.53 +%#-.5lf : 8127.53400 +%#-.10lf : 8127.5340000000 +%#-.30lf : 8127.533999999999650754030000000000 +%#-1lf : 8127.534000 +%#-1.lf : 8128. +%#-1.0lf : 8128. +%#-1.1lf : 8127.5 +%#-1.2lf : 8127.53 +%#-1.5lf : 8127.53400 +%#-1.10lf : 8127.5340000000 +%#-1.30lf : 8127.533999999999650754030000000000 +%#-2lf : 8127.534000 +%#-2.lf : 8128. +%#-2.0lf : 8128. +%#-2.1lf : 8127.5 +%#-2.2lf : 8127.53 +%#-2.5lf : 8127.53400 +%#-2.10lf : 8127.5340000000 +%#-2.30lf : 8127.533999999999650754030000000000 +%#-5lf : 8127.534000 +%#-5.lf : 8128. +%#-5.0lf : 8128. +%#-5.1lf : 8127.5 +%#-5.2lf : 8127.53 +%#-5.5lf : 8127.53400 +%#-5.10lf : 8127.5340000000 +%#-5.30lf : 8127.533999999999650754030000000000 +%#-10lf : 8127.534000 +%#-10.lf : 8128. +%#-10.0lf : 8128. +%#-10.1lf : 8127.5 +%#-10.2lf : 8127.53 +%#-10.5lf : 8127.53400 +%#-10.10lf : 8127.5340000000 +%#-10.30lf : 8127.533999999999650754030000000000 +%#-30lf : 8127.534000 +%#-30.lf : 8128. +%#-30.0lf : 8128. +%#-30.1lf : 8127.5 +%#-30.2lf : 8127.53 +%#-30.5lf : 8127.53400 +%#-30.10lf : 8127.5340000000 +%#-30.30lf : 8127.533999999999650754030000000000 +%+#lf : +8127.534000 +%+#.lf : +8128. +%+#.0lf : +8128. +%+#.1lf : +8127.5 +%+#.2lf : +8127.53 +%+#.5lf : +8127.53400 +%+#.10lf : +8127.5340000000 +%+#.30lf : +8127.533999999999650754030000000000 +%+#0lf : +8127.534000 +%+#0.lf : +8128. +%+#0.0lf : +8128. +%+#0.1lf : +8127.5 +%+#0.2lf : +8127.53 +%+#0.5lf : +8127.53400 +%+#0.10lf : +8127.5340000000 +%+#0.30lf : +8127.533999999999650754030000000000 +%+#1lf : +8127.534000 +%+#1.lf : +8128. +%+#1.0lf : +8128. +%+#1.1lf : +8127.5 +%+#1.2lf : +8127.53 +%+#1.5lf : +8127.53400 +%+#1.10lf : +8127.5340000000 +%+#1.30lf : +8127.533999999999650754030000000000 +%+#2lf : +8127.534000 +%+#2.lf : +8128. +%+#2.0lf : +8128. +%+#2.1lf : +8127.5 +%+#2.2lf : +8127.53 +%+#2.5lf : +8127.53400 +%+#2.10lf : +8127.5340000000 +%+#2.30lf : +8127.533999999999650754030000000000 +%+#5lf : +8127.534000 +%+#5.lf : +8128. +%+#5.0lf : +8128. +%+#5.1lf : +8127.5 +%+#5.2lf : +8127.53 +%+#5.5lf : +8127.53400 +%+#5.10lf : +8127.5340000000 +%+#5.30lf : +8127.533999999999650754030000000000 +%+#10lf : +8127.534000 +%+#10.lf : +8128. +%+#10.0lf : +8128. +%+#10.1lf : +8127.5 +%+#10.2lf : +8127.53 +%+#10.5lf : +8127.53400 +%+#10.10lf : +8127.5340000000 +%+#10.30lf : +8127.533999999999650754030000000000 +%+#30lf : +8127.534000 +%+#30.lf : +8128. +%+#30.0lf : +8128. +%+#30.1lf : +8127.5 +%+#30.2lf : +8127.53 +%+#30.5lf : +8127.53400 +%+#30.10lf : +8127.5340000000 +%+#30.30lf : +8127.533999999999650754030000000000 +%-#lf : 8127.534000 +%-#.lf : 8128. +%-#.0lf : 8128. +%-#.1lf : 8127.5 +%-#.2lf : 8127.53 +%-#.5lf : 8127.53400 +%-#.10lf : 8127.5340000000 +%-#.30lf : 8127.533999999999650754030000000000 +%-#1lf : 8127.534000 +%-#1.lf : 8128. +%-#1.0lf : 8128. +%-#1.1lf : 8127.5 +%-#1.2lf : 8127.53 +%-#1.5lf : 8127.53400 +%-#1.10lf : 8127.5340000000 +%-#1.30lf : 8127.533999999999650754030000000000 +%-#2lf : 8127.534000 +%-#2.lf : 8128. +%-#2.0lf : 8128. +%-#2.1lf : 8127.5 +%-#2.2lf : 8127.53 +%-#2.5lf : 8127.53400 +%-#2.10lf : 8127.5340000000 +%-#2.30lf : 8127.533999999999650754030000000000 +%-#5lf : 8127.534000 +%-#5.lf : 8128. +%-#5.0lf : 8128. +%-#5.1lf : 8127.5 +%-#5.2lf : 8127.53 +%-#5.5lf : 8127.53400 +%-#5.10lf : 8127.5340000000 +%-#5.30lf : 8127.533999999999650754030000000000 +%-#10lf : 8127.534000 +%-#10.lf : 8128. +%-#10.0lf : 8128. +%-#10.1lf : 8127.5 +%-#10.2lf : 8127.53 +%-#10.5lf : 8127.53400 +%-#10.10lf : 8127.5340000000 +%-#10.30lf : 8127.533999999999650754030000000000 +%-#30lf : 8127.534000 +%-#30.lf : 8128. +%-#30.0lf : 8128. +%-#30.1lf : 8127.5 +%-#30.2lf : 8127.53 +%-#30.5lf : 8127.53400 +%-#30.10lf : 8127.5340000000 +%-#30.30lf : 8127.533999999999650754030000000000 +%0#lf : 8127.534000 +%0#.lf : 8128. +%0#.0lf : 8128. +%0#.1lf : 8127.5 +%0#.2lf : 8127.53 +%0#.5lf : 8127.53400 +%0#.10lf : 8127.5340000000 +%0#.30lf : 8127.533999999999650754030000000000 +%0#1lf : 8127.534000 +%0#1.lf : 8128. +%0#1.0lf : 8128. +%0#1.1lf : 8127.5 +%0#1.2lf : 8127.53 +%0#1.5lf : 8127.53400 +%0#1.10lf : 8127.5340000000 +%0#1.30lf : 8127.533999999999650754030000000000 +%0#2lf : 8127.534000 +%0#2.lf : 8128. +%0#2.0lf : 8128. +%0#2.1lf : 8127.5 +%0#2.2lf : 8127.53 +%0#2.5lf : 8127.53400 +%0#2.10lf : 8127.5340000000 +%0#2.30lf : 8127.533999999999650754030000000000 +%0#5lf : 8127.534000 +%0#5.lf : 8128. +%0#5.0lf : 8128. +%0#5.1lf : 8127.5 +%0#5.2lf : 8127.53 +%0#5.5lf : 8127.53400 +%0#5.10lf : 8127.5340000000 +%0#5.30lf : 8127.533999999999650754030000000000 +%0#10lf : 8127.534000 +%0#10.lf : 000008128. +%0#10.0lf : 000008128. +%0#10.1lf : 00008127.5 +%0#10.2lf : 0008127.53 +%0#10.5lf : 8127.53400 +%0#10.10lf : 8127.5340000000 +%0#10.30lf : 8127.533999999999650754030000000000 +%0#30lf : 00000000000000000008127.534000 +%0#30.lf : 00000000000000000000000008128. +%0#30.0lf : 00000000000000000000000008128. +%0#30.1lf : 0000000000000000000000008127.5 +%0#30.2lf : 000000000000000000000008127.53 +%0#30.5lf : 000000000000000000008127.53400 +%0#30.10lf : 0000000000000008127.5340000000 +%0#30.30lf : 8127.533999999999650754030000000000 +%+0lf : +8127.534000 +%+0.lf : +8128 +%+0.0lf : +8128 +%+0.1lf : +8127.5 +%+0.2lf : +8127.53 +%+0.5lf : +8127.53400 +%+0.10lf : +8127.5340000000 +%+0.30lf : +8127.533999999999650754030000000000 +%+01lf : +8127.534000 +%+01.lf : +8128 +%+01.0lf : +8128 +%+01.1lf : +8127.5 +%+01.2lf : +8127.53 +%+01.5lf : +8127.53400 +%+01.10lf : +8127.5340000000 +%+01.30lf : +8127.533999999999650754030000000000 +%+02lf : +8127.534000 +%+02.lf : +8128 +%+02.0lf : +8128 +%+02.1lf : +8127.5 +%+02.2lf : +8127.53 +%+02.5lf : +8127.53400 +%+02.10lf : +8127.5340000000 +%+02.30lf : +8127.533999999999650754030000000000 +%+05lf : +8127.534000 +%+05.lf : +8128 +%+05.0lf : +8128 +%+05.1lf : +8127.5 +%+05.2lf : +8127.53 +%+05.5lf : +8127.53400 +%+05.10lf : +8127.5340000000 +%+05.30lf : +8127.533999999999650754030000000000 +%+010lf : +8127.534000 +%+010.lf : +000008128 +%+010.0lf : +000008128 +%+010.1lf : +0008127.5 +%+010.2lf : +008127.53 +%+010.5lf : +8127.53400 +%+010.10lf : +8127.5340000000 +%+010.30lf : +8127.533999999999650754030000000000 +%+030lf : +0000000000000000008127.534000 +%+030.lf : +00000000000000000000000008128 +%+030.0lf : +00000000000000000000000008128 +%+030.1lf : +000000000000000000000008127.5 +%+030.2lf : +00000000000000000000008127.53 +%+030.5lf : +00000000000000000008127.53400 +%+030.10lf : +000000000000008127.5340000000 +%+030.30lf : +8127.533999999999650754030000000000 +%#0lf : 8127.534000 +%#0.lf : 8128. +%#0.0lf : 8128. +%#0.1lf : 8127.5 +%#0.2lf : 8127.53 +%#0.5lf : 8127.53400 +%#0.10lf : 8127.5340000000 +%#0.30lf : 8127.533999999999650754030000000000 +%#01lf : 8127.534000 +%#01.lf : 8128. +%#01.0lf : 8128. +%#01.1lf : 8127.5 +%#01.2lf : 8127.53 +%#01.5lf : 8127.53400 +%#01.10lf : 8127.5340000000 +%#01.30lf : 8127.533999999999650754030000000000 +%#02lf : 8127.534000 +%#02.lf : 8128. +%#02.0lf : 8128. +%#02.1lf : 8127.5 +%#02.2lf : 8127.53 +%#02.5lf : 8127.53400 +%#02.10lf : 8127.5340000000 +%#02.30lf : 8127.533999999999650754030000000000 +%#05lf : 8127.534000 +%#05.lf : 8128. +%#05.0lf : 8128. +%#05.1lf : 8127.5 +%#05.2lf : 8127.53 +%#05.5lf : 8127.53400 +%#05.10lf : 8127.5340000000 +%#05.30lf : 8127.533999999999650754030000000000 +%#010lf : 8127.534000 +%#010.lf : 000008128. +%#010.0lf : 000008128. +%#010.1lf : 00008127.5 +%#010.2lf : 0008127.53 +%#010.5lf : 8127.53400 +%#010.10lf : 8127.5340000000 +%#010.30lf : 8127.533999999999650754030000000000 +%#030lf : 00000000000000000008127.534000 +%#030.lf : 00000000000000000000000008128. +%#030.0lf : 00000000000000000000000008128. +%#030.1lf : 0000000000000000000000008127.5 +%#030.2lf : 000000000000000000000008127.53 +%#030.5lf : 000000000000000000008127.53400 +%#030.10lf : 0000000000000008127.5340000000 +%#030.30lf : 8127.533999999999650754030000000000 +%-+#lf : +8127.534000 +%-+#.lf : +8128. +%-+#.0lf : +8128. +%-+#.1lf : +8127.5 +%-+#.2lf : +8127.53 +%-+#.5lf : +8127.53400 +%-+#.10lf : +8127.5340000000 +%-+#.30lf : +8127.533999999999650754030000000000 +%-+#1lf : +8127.534000 +%-+#1.lf : +8128. +%-+#1.0lf : +8128. +%-+#1.1lf : +8127.5 +%-+#1.2lf : +8127.53 +%-+#1.5lf : +8127.53400 +%-+#1.10lf : +8127.5340000000 +%-+#1.30lf : +8127.533999999999650754030000000000 +%-+#2lf : +8127.534000 +%-+#2.lf : +8128. +%-+#2.0lf : +8128. +%-+#2.1lf : +8127.5 +%-+#2.2lf : +8127.53 +%-+#2.5lf : +8127.53400 +%-+#2.10lf : +8127.5340000000 +%-+#2.30lf : +8127.533999999999650754030000000000 +%-+#5lf : +8127.534000 +%-+#5.lf : +8128. +%-+#5.0lf : +8128. +%-+#5.1lf : +8127.5 +%-+#5.2lf : +8127.53 +%-+#5.5lf : +8127.53400 +%-+#5.10lf : +8127.5340000000 +%-+#5.30lf : +8127.533999999999650754030000000000 +%-+#10lf : +8127.534000 +%-+#10.lf : +8128. +%-+#10.0lf : +8128. +%-+#10.1lf : +8127.5 +%-+#10.2lf : +8127.53 +%-+#10.5lf : +8127.53400 +%-+#10.10lf : +8127.5340000000 +%-+#10.30lf : +8127.533999999999650754030000000000 +%-+#30lf : +8127.534000 +%-+#30.lf : +8128. +%-+#30.0lf : +8128. +%-+#30.1lf : +8127.5 +%-+#30.2lf : +8127.53 +%-+#30.5lf : +8127.53400 +%-+#30.10lf : +8127.5340000000 +%-+#30.30lf : +8127.533999999999650754030000000000 +%0+#lf : +8127.534000 +%0+#.lf : +8128. +%0+#.0lf : +8128. +%0+#.1lf : +8127.5 +%0+#.2lf : +8127.53 +%0+#.5lf : +8127.53400 +%0+#.10lf : +8127.5340000000 +%0+#.30lf : +8127.533999999999650754030000000000 +%0+#1lf : +8127.534000 +%0+#1.lf : +8128. +%0+#1.0lf : +8128. +%0+#1.1lf : +8127.5 +%0+#1.2lf : +8127.53 +%0+#1.5lf : +8127.53400 +%0+#1.10lf : +8127.5340000000 +%0+#1.30lf : +8127.533999999999650754030000000000 +%0+#2lf : +8127.534000 +%0+#2.lf : +8128. +%0+#2.0lf : +8128. +%0+#2.1lf : +8127.5 +%0+#2.2lf : +8127.53 +%0+#2.5lf : +8127.53400 +%0+#2.10lf : +8127.5340000000 +%0+#2.30lf : +8127.533999999999650754030000000000 +%0+#5lf : +8127.534000 +%0+#5.lf : +8128. +%0+#5.0lf : +8128. +%0+#5.1lf : +8127.5 +%0+#5.2lf : +8127.53 +%0+#5.5lf : +8127.53400 +%0+#5.10lf : +8127.5340000000 +%0+#5.30lf : +8127.533999999999650754030000000000 +%0+#10lf : +8127.534000 +%0+#10.lf : +00008128. +%0+#10.0lf : +00008128. +%0+#10.1lf : +0008127.5 +%0+#10.2lf : +008127.53 +%0+#10.5lf : +8127.53400 +%0+#10.10lf : +8127.5340000000 +%0+#10.30lf : +8127.533999999999650754030000000000 +%0+#30lf : +0000000000000000008127.534000 +%0+#30.lf : +0000000000000000000000008128. +%0+#30.0lf : +0000000000000000000000008128. +%0+#30.1lf : +000000000000000000000008127.5 +%0+#30.2lf : +00000000000000000000008127.53 +%0+#30.5lf : +00000000000000000008127.53400 +%0+#30.10lf : +000000000000008127.5340000000 +%0+#30.30lf : +8127.533999999999650754030000000000 +%#-+lf : +8127.534000 +%#-+.lf : +8128. +%#-+.0lf : +8128. +%#-+.1lf : +8127.5 +%#-+.2lf : +8127.53 +%#-+.5lf : +8127.53400 +%#-+.10lf : +8127.5340000000 +%#-+.30lf : +8127.533999999999650754030000000000 +%#-+1lf : +8127.534000 +%#-+1.lf : +8128. +%#-+1.0lf : +8128. +%#-+1.1lf : +8127.5 +%#-+1.2lf : +8127.53 +%#-+1.5lf : +8127.53400 +%#-+1.10lf : +8127.5340000000 +%#-+1.30lf : +8127.533999999999650754030000000000 +%#-+2lf : +8127.534000 +%#-+2.lf : +8128. +%#-+2.0lf : +8128. +%#-+2.1lf : +8127.5 +%#-+2.2lf : +8127.53 +%#-+2.5lf : +8127.53400 +%#-+2.10lf : +8127.5340000000 +%#-+2.30lf : +8127.533999999999650754030000000000 +%#-+5lf : +8127.534000 +%#-+5.lf : +8128. +%#-+5.0lf : +8128. +%#-+5.1lf : +8127.5 +%#-+5.2lf : +8127.53 +%#-+5.5lf : +8127.53400 +%#-+5.10lf : +8127.5340000000 +%#-+5.30lf : +8127.533999999999650754030000000000 +%#-+10lf : +8127.534000 +%#-+10.lf : +8128. +%#-+10.0lf : +8128. +%#-+10.1lf : +8127.5 +%#-+10.2lf : +8127.53 +%#-+10.5lf : +8127.53400 +%#-+10.10lf : +8127.5340000000 +%#-+10.30lf : +8127.533999999999650754030000000000 +%#-+30lf : +8127.534000 +%#-+30.lf : +8128. +%#-+30.0lf : +8128. +%#-+30.1lf : +8127.5 +%#-+30.2lf : +8127.53 +%#-+30.5lf : +8127.53400 +%#-+30.10lf : +8127.5340000000 +%#-+30.30lf : +8127.533999999999650754030000000000 +%+#-lf : +8127.534000 +%+#-.lf : +8128. +%+#-.0lf : +8128. +%+#-.1lf : +8127.5 +%+#-.2lf : +8127.53 +%+#-.5lf : +8127.53400 +%+#-.10lf : +8127.5340000000 +%+#-.30lf : +8127.533999999999650754030000000000 +%+#-1lf : +8127.534000 +%+#-1.lf : +8128. +%+#-1.0lf : +8128. +%+#-1.1lf : +8127.5 +%+#-1.2lf : +8127.53 +%+#-1.5lf : +8127.53400 +%+#-1.10lf : +8127.5340000000 +%+#-1.30lf : +8127.533999999999650754030000000000 +%+#-2lf : +8127.534000 +%+#-2.lf : +8128. +%+#-2.0lf : +8128. +%+#-2.1lf : +8127.5 +%+#-2.2lf : +8127.53 +%+#-2.5lf : +8127.53400 +%+#-2.10lf : +8127.5340000000 +%+#-2.30lf : +8127.533999999999650754030000000000 +%+#-5lf : +8127.534000 +%+#-5.lf : +8128. +%+#-5.0lf : +8128. +%+#-5.1lf : +8127.5 +%+#-5.2lf : +8127.53 +%+#-5.5lf : +8127.53400 +%+#-5.10lf : +8127.5340000000 +%+#-5.30lf : +8127.533999999999650754030000000000 +%+#-10lf : +8127.534000 +%+#-10.lf : +8128. +%+#-10.0lf : +8128. +%+#-10.1lf : +8127.5 +%+#-10.2lf : +8127.53 +%+#-10.5lf : +8127.53400 +%+#-10.10lf : +8127.5340000000 +%+#-10.30lf : +8127.533999999999650754030000000000 +%+#-30lf : +8127.534000 +%+#-30.lf : +8128. +%+#-30.0lf : +8128. +%+#-30.1lf : +8127.5 +%+#-30.2lf : +8127.53 +%+#-30.5lf : +8127.53400 +%+#-30.10lf : +8127.5340000000 +%+#-30.30lf : +8127.533999999999650754030000000000 +%+F : +8127.534180 +%+.F : +8128 +%+.0F : +8128 +%+.1F : +8127.5 +%+.2F : +8127.53 +%+.5F : +8127.53418 +%+.10F : +8127.5341796875 +%+.30F : +8127.534179687500000000000000000000 +%+0F : +8127.534180 +%+0.F : +8128 +%+0.0F : +8128 +%+0.1F : +8127.5 +%+0.2F : +8127.53 +%+0.5F : +8127.53418 +%+0.10F : +8127.5341796875 +%+0.30F : +8127.534179687500000000000000000000 +%+1F : +8127.534180 +%+1.F : +8128 +%+1.0F : +8128 +%+1.1F : +8127.5 +%+1.2F : +8127.53 +%+1.5F : +8127.53418 +%+1.10F : +8127.5341796875 +%+1.30F : +8127.534179687500000000000000000000 +%+2F : +8127.534180 +%+2.F : +8128 +%+2.0F : +8128 +%+2.1F : +8127.5 +%+2.2F : +8127.53 +%+2.5F : +8127.53418 +%+2.10F : +8127.5341796875 +%+2.30F : +8127.534179687500000000000000000000 +%+5F : +8127.534180 +%+5.F : +8128 +%+5.0F : +8128 +%+5.1F : +8127.5 +%+5.2F : +8127.53 +%+5.5F : +8127.53418 +%+5.10F : +8127.5341796875 +%+5.30F : +8127.534179687500000000000000000000 +%+10F : +8127.534180 +%+10.F : +8128 +%+10.0F : +8128 +%+10.1F : +8127.5 +%+10.2F : +8127.53 +%+10.5F : +8127.53418 +%+10.10F : +8127.5341796875 +%+10.30F : +8127.534179687500000000000000000000 +%+30F : +8127.534180 +%+30.F : +8128 +%+30.0F : +8128 +%+30.1F : +8127.5 +%+30.2F : +8127.53 +%+30.5F : +8127.53418 +%+30.10F : +8127.5341796875 +%+30.30F : +8127.534179687500000000000000000000 +%-F : 8127.534180 +%-.F : 8128 +%-.0F : 8128 +%-.1F : 8127.5 +%-.2F : 8127.53 +%-.5F : 8127.53418 +%-.10F : 8127.5341796875 +%-.30F : 8127.534179687500000000000000000000 +%-1F : 8127.534180 +%-1.F : 8128 +%-1.0F : 8128 +%-1.1F : 8127.5 +%-1.2F : 8127.53 +%-1.5F : 8127.53418 +%-1.10F : 8127.5341796875 +%-1.30F : 8127.534179687500000000000000000000 +%-2F : 8127.534180 +%-2.F : 8128 +%-2.0F : 8128 +%-2.1F : 8127.5 +%-2.2F : 8127.53 +%-2.5F : 8127.53418 +%-2.10F : 8127.5341796875 +%-2.30F : 8127.534179687500000000000000000000 +%-5F : 8127.534180 +%-5.F : 8128 +%-5.0F : 8128 +%-5.1F : 8127.5 +%-5.2F : 8127.53 +%-5.5F : 8127.53418 +%-5.10F : 8127.5341796875 +%-5.30F : 8127.534179687500000000000000000000 +%-10F : 8127.534180 +%-10.F : 8128 +%-10.0F : 8128 +%-10.1F : 8127.5 +%-10.2F : 8127.53 +%-10.5F : 8127.53418 +%-10.10F : 8127.5341796875 +%-10.30F : 8127.534179687500000000000000000000 +%-30F : 8127.534180 +%-30.F : 8128 +%-30.0F : 8128 +%-30.1F : 8127.5 +%-30.2F : 8127.53 +%-30.5F : 8127.53418 +%-30.10F : 8127.5341796875 +%-30.30F : 8127.534179687500000000000000000000 +%#F : 8127.534180 +%#.F : 8128. +%#.0F : 8128. +%#.1F : 8127.5 +%#.2F : 8127.53 +%#.5F : 8127.53418 +%#.10F : 8127.5341796875 +%#.30F : 8127.534179687500000000000000000000 +%#0F : 8127.534180 +%#0.F : 8128. +%#0.0F : 8128. +%#0.1F : 8127.5 +%#0.2F : 8127.53 +%#0.5F : 8127.53418 +%#0.10F : 8127.5341796875 +%#0.30F : 8127.534179687500000000000000000000 +%#1F : 8127.534180 +%#1.F : 8128. +%#1.0F : 8128. +%#1.1F : 8127.5 +%#1.2F : 8127.53 +%#1.5F : 8127.53418 +%#1.10F : 8127.5341796875 +%#1.30F : 8127.534179687500000000000000000000 +%#2F : 8127.534180 +%#2.F : 8128. +%#2.0F : 8128. +%#2.1F : 8127.5 +%#2.2F : 8127.53 +%#2.5F : 8127.53418 +%#2.10F : 8127.5341796875 +%#2.30F : 8127.534179687500000000000000000000 +%#5F : 8127.534180 +%#5.F : 8128. +%#5.0F : 8128. +%#5.1F : 8127.5 +%#5.2F : 8127.53 +%#5.5F : 8127.53418 +%#5.10F : 8127.5341796875 +%#5.30F : 8127.534179687500000000000000000000 +%#10F : 8127.534180 +%#10.F : 8128. +%#10.0F : 8128. +%#10.1F : 8127.5 +%#10.2F : 8127.53 +%#10.5F : 8127.53418 +%#10.10F : 8127.5341796875 +%#10.30F : 8127.534179687500000000000000000000 +%#30F : 8127.534180 +%#30.F : 8128. +%#30.0F : 8128. +%#30.1F : 8127.5 +%#30.2F : 8127.53 +%#30.5F : 8127.53418 +%#30.10F : 8127.5341796875 +%#30.30F : 8127.534179687500000000000000000000 +%0F : 8127.534180 +%0.F : 8128 +%0.0F : 8128 +%0.1F : 8127.5 +%0.2F : 8127.53 +%0.5F : 8127.53418 +%0.10F : 8127.5341796875 +%0.30F : 8127.534179687500000000000000000000 +%01F : 8127.534180 +%01.F : 8128 +%01.0F : 8128 +%01.1F : 8127.5 +%01.2F : 8127.53 +%01.5F : 8127.53418 +%01.10F : 8127.5341796875 +%01.30F : 8127.534179687500000000000000000000 +%02F : 8127.534180 +%02.F : 8128 +%02.0F : 8128 +%02.1F : 8127.5 +%02.2F : 8127.53 +%02.5F : 8127.53418 +%02.10F : 8127.5341796875 +%02.30F : 8127.534179687500000000000000000000 +%05F : 8127.534180 +%05.F : 08128 +%05.0F : 08128 +%05.1F : 8127.5 +%05.2F : 8127.53 +%05.5F : 8127.53418 +%05.10F : 8127.5341796875 +%05.30F : 8127.534179687500000000000000000000 +%010F : 8127.534180 +%010.F : 0000008128 +%010.0F : 0000008128 +%010.1F : 00008127.5 +%010.2F : 0008127.53 +%010.5F : 8127.53418 +%010.10F : 8127.5341796875 +%010.30F : 8127.534179687500000000000000000000 +%030F : 00000000000000000008127.534180 +%030.F : 000000000000000000000000008128 +%030.0F : 000000000000000000000000008128 +%030.1F : 0000000000000000000000008127.5 +%030.2F : 000000000000000000000008127.53 +%030.5F : 000000000000000000008127.53418 +%030.10F : 0000000000000008127.5341796875 +%030.30F : 8127.534179687500000000000000000000 +%-+F : +8127.534180 +%-+.F : +8128 +%-+.0F : +8128 +%-+.1F : +8127.5 +%-+.2F : +8127.53 +%-+.5F : +8127.53418 +%-+.10F : +8127.5341796875 +%-+.30F : +8127.534179687500000000000000000000 +%-+1F : +8127.534180 +%-+1.F : +8128 +%-+1.0F : +8128 +%-+1.1F : +8127.5 +%-+1.2F : +8127.53 +%-+1.5F : +8127.53418 +%-+1.10F : +8127.5341796875 +%-+1.30F : +8127.534179687500000000000000000000 +%-+2F : +8127.534180 +%-+2.F : +8128 +%-+2.0F : +8128 +%-+2.1F : +8127.5 +%-+2.2F : +8127.53 +%-+2.5F : +8127.53418 +%-+2.10F : +8127.5341796875 +%-+2.30F : +8127.534179687500000000000000000000 +%-+5F : +8127.534180 +%-+5.F : +8128 +%-+5.0F : +8128 +%-+5.1F : +8127.5 +%-+5.2F : +8127.53 +%-+5.5F : +8127.53418 +%-+5.10F : +8127.5341796875 +%-+5.30F : +8127.534179687500000000000000000000 +%-+10F : +8127.534180 +%-+10.F : +8128 +%-+10.0F : +8128 +%-+10.1F : +8127.5 +%-+10.2F : +8127.53 +%-+10.5F : +8127.53418 +%-+10.10F : +8127.5341796875 +%-+10.30F : +8127.534179687500000000000000000000 +%-+30F : +8127.534180 +%-+30.F : +8128 +%-+30.0F : +8128 +%-+30.1F : +8127.5 +%-+30.2F : +8127.53 +%-+30.5F : +8127.53418 +%-+30.10F : +8127.5341796875 +%-+30.30F : +8127.534179687500000000000000000000 +%#+F : +8127.534180 +%#+.F : +8128. +%#+.0F : +8128. +%#+.1F : +8127.5 +%#+.2F : +8127.53 +%#+.5F : +8127.53418 +%#+.10F : +8127.5341796875 +%#+.30F : +8127.534179687500000000000000000000 +%#+0F : +8127.534180 +%#+0.F : +8128. +%#+0.0F : +8128. +%#+0.1F : +8127.5 +%#+0.2F : +8127.53 +%#+0.5F : +8127.53418 +%#+0.10F : +8127.5341796875 +%#+0.30F : +8127.534179687500000000000000000000 +%#+1F : +8127.534180 +%#+1.F : +8128. +%#+1.0F : +8128. +%#+1.1F : +8127.5 +%#+1.2F : +8127.53 +%#+1.5F : +8127.53418 +%#+1.10F : +8127.5341796875 +%#+1.30F : +8127.534179687500000000000000000000 +%#+2F : +8127.534180 +%#+2.F : +8128. +%#+2.0F : +8128. +%#+2.1F : +8127.5 +%#+2.2F : +8127.53 +%#+2.5F : +8127.53418 +%#+2.10F : +8127.5341796875 +%#+2.30F : +8127.534179687500000000000000000000 +%#+5F : +8127.534180 +%#+5.F : +8128. +%#+5.0F : +8128. +%#+5.1F : +8127.5 +%#+5.2F : +8127.53 +%#+5.5F : +8127.53418 +%#+5.10F : +8127.5341796875 +%#+5.30F : +8127.534179687500000000000000000000 +%#+10F : +8127.534180 +%#+10.F : +8128. +%#+10.0F : +8128. +%#+10.1F : +8127.5 +%#+10.2F : +8127.53 +%#+10.5F : +8127.53418 +%#+10.10F : +8127.5341796875 +%#+10.30F : +8127.534179687500000000000000000000 +%#+30F : +8127.534180 +%#+30.F : +8128. +%#+30.0F : +8128. +%#+30.1F : +8127.5 +%#+30.2F : +8127.53 +%#+30.5F : +8127.53418 +%#+30.10F : +8127.5341796875 +%#+30.30F : +8127.534179687500000000000000000000 +%+0F : +8127.534180 +%+0.F : +8128 +%+0.0F : +8128 +%+0.1F : +8127.5 +%+0.2F : +8127.53 +%+0.5F : +8127.53418 +%+0.10F : +8127.5341796875 +%+0.30F : +8127.534179687500000000000000000000 +%+01F : +8127.534180 +%+01.F : +8128 +%+01.0F : +8128 +%+01.1F : +8127.5 +%+01.2F : +8127.53 +%+01.5F : +8127.53418 +%+01.10F : +8127.5341796875 +%+01.30F : +8127.534179687500000000000000000000 +%+02F : +8127.534180 +%+02.F : +8128 +%+02.0F : +8128 +%+02.1F : +8127.5 +%+02.2F : +8127.53 +%+02.5F : +8127.53418 +%+02.10F : +8127.5341796875 +%+02.30F : +8127.534179687500000000000000000000 +%+05F : +8127.534180 +%+05.F : +8128 +%+05.0F : +8128 +%+05.1F : +8127.5 +%+05.2F : +8127.53 +%+05.5F : +8127.53418 +%+05.10F : +8127.5341796875 +%+05.30F : +8127.534179687500000000000000000000 +%+010F : +8127.534180 +%+010.F : +000008128 +%+010.0F : +000008128 +%+010.1F : +0008127.5 +%+010.2F : +008127.53 +%+010.5F : +8127.53418 +%+010.10F : +8127.5341796875 +%+010.30F : +8127.534179687500000000000000000000 +%+030F : +0000000000000000008127.534180 +%+030.F : +00000000000000000000000008128 +%+030.0F : +00000000000000000000000008128 +%+030.1F : +000000000000000000000008127.5 +%+030.2F : +00000000000000000000008127.53 +%+030.5F : +00000000000000000008127.53418 +%+030.10F : +000000000000008127.5341796875 +%+030.30F : +8127.534179687500000000000000000000 +%+-F : +8127.534180 +%+-.F : +8128 +%+-.0F : +8128 +%+-.1F : +8127.5 +%+-.2F : +8127.53 +%+-.5F : +8127.53418 +%+-.10F : +8127.5341796875 +%+-.30F : +8127.534179687500000000000000000000 +%+-1F : +8127.534180 +%+-1.F : +8128 +%+-1.0F : +8128 +%+-1.1F : +8127.5 +%+-1.2F : +8127.53 +%+-1.5F : +8127.53418 +%+-1.10F : +8127.5341796875 +%+-1.30F : +8127.534179687500000000000000000000 +%+-2F : +8127.534180 +%+-2.F : +8128 +%+-2.0F : +8128 +%+-2.1F : +8127.5 +%+-2.2F : +8127.53 +%+-2.5F : +8127.53418 +%+-2.10F : +8127.5341796875 +%+-2.30F : +8127.534179687500000000000000000000 +%+-5F : +8127.534180 +%+-5.F : +8128 +%+-5.0F : +8128 +%+-5.1F : +8127.5 +%+-5.2F : +8127.53 +%+-5.5F : +8127.53418 +%+-5.10F : +8127.5341796875 +%+-5.30F : +8127.534179687500000000000000000000 +%+-10F : +8127.534180 +%+-10.F : +8128 +%+-10.0F : +8128 +%+-10.1F : +8127.5 +%+-10.2F : +8127.53 +%+-10.5F : +8127.53418 +%+-10.10F : +8127.5341796875 +%+-10.30F : +8127.534179687500000000000000000000 +%+-30F : +8127.534180 +%+-30.F : +8128 +%+-30.0F : +8128 +%+-30.1F : +8127.5 +%+-30.2F : +8127.53 +%+-30.5F : +8127.53418 +%+-30.10F : +8127.5341796875 +%+-30.30F : +8127.534179687500000000000000000000 +%#-F : 8127.534180 +%#-.F : 8128. +%#-.0F : 8128. +%#-.1F : 8127.5 +%#-.2F : 8127.53 +%#-.5F : 8127.53418 +%#-.10F : 8127.5341796875 +%#-.30F : 8127.534179687500000000000000000000 +%#-1F : 8127.534180 +%#-1.F : 8128. +%#-1.0F : 8128. +%#-1.1F : 8127.5 +%#-1.2F : 8127.53 +%#-1.5F : 8127.53418 +%#-1.10F : 8127.5341796875 +%#-1.30F : 8127.534179687500000000000000000000 +%#-2F : 8127.534180 +%#-2.F : 8128. +%#-2.0F : 8128. +%#-2.1F : 8127.5 +%#-2.2F : 8127.53 +%#-2.5F : 8127.53418 +%#-2.10F : 8127.5341796875 +%#-2.30F : 8127.534179687500000000000000000000 +%#-5F : 8127.534180 +%#-5.F : 8128. +%#-5.0F : 8128. +%#-5.1F : 8127.5 +%#-5.2F : 8127.53 +%#-5.5F : 8127.53418 +%#-5.10F : 8127.5341796875 +%#-5.30F : 8127.534179687500000000000000000000 +%#-10F : 8127.534180 +%#-10.F : 8128. +%#-10.0F : 8128. +%#-10.1F : 8127.5 +%#-10.2F : 8127.53 +%#-10.5F : 8127.53418 +%#-10.10F : 8127.5341796875 +%#-10.30F : 8127.534179687500000000000000000000 +%#-30F : 8127.534180 +%#-30.F : 8128. +%#-30.0F : 8128. +%#-30.1F : 8127.5 +%#-30.2F : 8127.53 +%#-30.5F : 8127.53418 +%#-30.10F : 8127.5341796875 +%#-30.30F : 8127.534179687500000000000000000000 +%+#F : +8127.534180 +%+#.F : +8128. +%+#.0F : +8128. +%+#.1F : +8127.5 +%+#.2F : +8127.53 +%+#.5F : +8127.53418 +%+#.10F : +8127.5341796875 +%+#.30F : +8127.534179687500000000000000000000 +%+#0F : +8127.534180 +%+#0.F : +8128. +%+#0.0F : +8128. +%+#0.1F : +8127.5 +%+#0.2F : +8127.53 +%+#0.5F : +8127.53418 +%+#0.10F : +8127.5341796875 +%+#0.30F : +8127.534179687500000000000000000000 +%+#1F : +8127.534180 +%+#1.F : +8128. +%+#1.0F : +8128. +%+#1.1F : +8127.5 +%+#1.2F : +8127.53 +%+#1.5F : +8127.53418 +%+#1.10F : +8127.5341796875 +%+#1.30F : +8127.534179687500000000000000000000 +%+#2F : +8127.534180 +%+#2.F : +8128. +%+#2.0F : +8128. +%+#2.1F : +8127.5 +%+#2.2F : +8127.53 +%+#2.5F : +8127.53418 +%+#2.10F : +8127.5341796875 +%+#2.30F : +8127.534179687500000000000000000000 +%+#5F : +8127.534180 +%+#5.F : +8128. +%+#5.0F : +8128. +%+#5.1F : +8127.5 +%+#5.2F : +8127.53 +%+#5.5F : +8127.53418 +%+#5.10F : +8127.5341796875 +%+#5.30F : +8127.534179687500000000000000000000 +%+#10F : +8127.534180 +%+#10.F : +8128. +%+#10.0F : +8128. +%+#10.1F : +8127.5 +%+#10.2F : +8127.53 +%+#10.5F : +8127.53418 +%+#10.10F : +8127.5341796875 +%+#10.30F : +8127.534179687500000000000000000000 +%+#30F : +8127.534180 +%+#30.F : +8128. +%+#30.0F : +8128. +%+#30.1F : +8127.5 +%+#30.2F : +8127.53 +%+#30.5F : +8127.53418 +%+#30.10F : +8127.5341796875 +%+#30.30F : +8127.534179687500000000000000000000 +%-#F : 8127.534180 +%-#.F : 8128. +%-#.0F : 8128. +%-#.1F : 8127.5 +%-#.2F : 8127.53 +%-#.5F : 8127.53418 +%-#.10F : 8127.5341796875 +%-#.30F : 8127.534179687500000000000000000000 +%-#1F : 8127.534180 +%-#1.F : 8128. +%-#1.0F : 8128. +%-#1.1F : 8127.5 +%-#1.2F : 8127.53 +%-#1.5F : 8127.53418 +%-#1.10F : 8127.5341796875 +%-#1.30F : 8127.534179687500000000000000000000 +%-#2F : 8127.534180 +%-#2.F : 8128. +%-#2.0F : 8128. +%-#2.1F : 8127.5 +%-#2.2F : 8127.53 +%-#2.5F : 8127.53418 +%-#2.10F : 8127.5341796875 +%-#2.30F : 8127.534179687500000000000000000000 +%-#5F : 8127.534180 +%-#5.F : 8128. +%-#5.0F : 8128. +%-#5.1F : 8127.5 +%-#5.2F : 8127.53 +%-#5.5F : 8127.53418 +%-#5.10F : 8127.5341796875 +%-#5.30F : 8127.534179687500000000000000000000 +%-#10F : 8127.534180 +%-#10.F : 8128. +%-#10.0F : 8128. +%-#10.1F : 8127.5 +%-#10.2F : 8127.53 +%-#10.5F : 8127.53418 +%-#10.10F : 8127.5341796875 +%-#10.30F : 8127.534179687500000000000000000000 +%-#30F : 8127.534180 +%-#30.F : 8128. +%-#30.0F : 8128. +%-#30.1F : 8127.5 +%-#30.2F : 8127.53 +%-#30.5F : 8127.53418 +%-#30.10F : 8127.5341796875 +%-#30.30F : 8127.534179687500000000000000000000 +%0#F : 8127.534180 +%0#.F : 8128. +%0#.0F : 8128. +%0#.1F : 8127.5 +%0#.2F : 8127.53 +%0#.5F : 8127.53418 +%0#.10F : 8127.5341796875 +%0#.30F : 8127.534179687500000000000000000000 +%0#1F : 8127.534180 +%0#1.F : 8128. +%0#1.0F : 8128. +%0#1.1F : 8127.5 +%0#1.2F : 8127.53 +%0#1.5F : 8127.53418 +%0#1.10F : 8127.5341796875 +%0#1.30F : 8127.534179687500000000000000000000 +%0#2F : 8127.534180 +%0#2.F : 8128. +%0#2.0F : 8128. +%0#2.1F : 8127.5 +%0#2.2F : 8127.53 +%0#2.5F : 8127.53418 +%0#2.10F : 8127.5341796875 +%0#2.30F : 8127.534179687500000000000000000000 +%0#5F : 8127.534180 +%0#5.F : 8128. +%0#5.0F : 8128. +%0#5.1F : 8127.5 +%0#5.2F : 8127.53 +%0#5.5F : 8127.53418 +%0#5.10F : 8127.5341796875 +%0#5.30F : 8127.534179687500000000000000000000 +%0#10F : 8127.534180 +%0#10.F : 000008128. +%0#10.0F : 000008128. +%0#10.1F : 00008127.5 +%0#10.2F : 0008127.53 +%0#10.5F : 8127.53418 +%0#10.10F : 8127.5341796875 +%0#10.30F : 8127.534179687500000000000000000000 +%0#30F : 00000000000000000008127.534180 +%0#30.F : 00000000000000000000000008128. +%0#30.0F : 00000000000000000000000008128. +%0#30.1F : 0000000000000000000000008127.5 +%0#30.2F : 000000000000000000000008127.53 +%0#30.5F : 000000000000000000008127.53418 +%0#30.10F : 0000000000000008127.5341796875 +%0#30.30F : 8127.534179687500000000000000000000 +%+0F : +8127.534180 +%+0.F : +8128 +%+0.0F : +8128 +%+0.1F : +8127.5 +%+0.2F : +8127.53 +%+0.5F : +8127.53418 +%+0.10F : +8127.5341796875 +%+0.30F : +8127.534179687500000000000000000000 +%+01F : +8127.534180 +%+01.F : +8128 +%+01.0F : +8128 +%+01.1F : +8127.5 +%+01.2F : +8127.53 +%+01.5F : +8127.53418 +%+01.10F : +8127.5341796875 +%+01.30F : +8127.534179687500000000000000000000 +%+02F : +8127.534180 +%+02.F : +8128 +%+02.0F : +8128 +%+02.1F : +8127.5 +%+02.2F : +8127.53 +%+02.5F : +8127.53418 +%+02.10F : +8127.5341796875 +%+02.30F : +8127.534179687500000000000000000000 +%+05F : +8127.534180 +%+05.F : +8128 +%+05.0F : +8128 +%+05.1F : +8127.5 +%+05.2F : +8127.53 +%+05.5F : +8127.53418 +%+05.10F : +8127.5341796875 +%+05.30F : +8127.534179687500000000000000000000 +%+010F : +8127.534180 +%+010.F : +000008128 +%+010.0F : +000008128 +%+010.1F : +0008127.5 +%+010.2F : +008127.53 +%+010.5F : +8127.53418 +%+010.10F : +8127.5341796875 +%+010.30F : +8127.534179687500000000000000000000 +%+030F : +0000000000000000008127.534180 +%+030.F : +00000000000000000000000008128 +%+030.0F : +00000000000000000000000008128 +%+030.1F : +000000000000000000000008127.5 +%+030.2F : +00000000000000000000008127.53 +%+030.5F : +00000000000000000008127.53418 +%+030.10F : +000000000000008127.5341796875 +%+030.30F : +8127.534179687500000000000000000000 +%#0F : 8127.534180 +%#0.F : 8128. +%#0.0F : 8128. +%#0.1F : 8127.5 +%#0.2F : 8127.53 +%#0.5F : 8127.53418 +%#0.10F : 8127.5341796875 +%#0.30F : 8127.534179687500000000000000000000 +%#01F : 8127.534180 +%#01.F : 8128. +%#01.0F : 8128. +%#01.1F : 8127.5 +%#01.2F : 8127.53 +%#01.5F : 8127.53418 +%#01.10F : 8127.5341796875 +%#01.30F : 8127.534179687500000000000000000000 +%#02F : 8127.534180 +%#02.F : 8128. +%#02.0F : 8128. +%#02.1F : 8127.5 +%#02.2F : 8127.53 +%#02.5F : 8127.53418 +%#02.10F : 8127.5341796875 +%#02.30F : 8127.534179687500000000000000000000 +%#05F : 8127.534180 +%#05.F : 8128. +%#05.0F : 8128. +%#05.1F : 8127.5 +%#05.2F : 8127.53 +%#05.5F : 8127.53418 +%#05.10F : 8127.5341796875 +%#05.30F : 8127.534179687500000000000000000000 +%#010F : 8127.534180 +%#010.F : 000008128. +%#010.0F : 000008128. +%#010.1F : 00008127.5 +%#010.2F : 0008127.53 +%#010.5F : 8127.53418 +%#010.10F : 8127.5341796875 +%#010.30F : 8127.534179687500000000000000000000 +%#030F : 00000000000000000008127.534180 +%#030.F : 00000000000000000000000008128. +%#030.0F : 00000000000000000000000008128. +%#030.1F : 0000000000000000000000008127.5 +%#030.2F : 000000000000000000000008127.53 +%#030.5F : 000000000000000000008127.53418 +%#030.10F : 0000000000000008127.5341796875 +%#030.30F : 8127.534179687500000000000000000000 +%-+#F : +8127.534180 +%-+#.F : +8128. +%-+#.0F : +8128. +%-+#.1F : +8127.5 +%-+#.2F : +8127.53 +%-+#.5F : +8127.53418 +%-+#.10F : +8127.5341796875 +%-+#.30F : +8127.534179687500000000000000000000 +%-+#1F : +8127.534180 +%-+#1.F : +8128. +%-+#1.0F : +8128. +%-+#1.1F : +8127.5 +%-+#1.2F : +8127.53 +%-+#1.5F : +8127.53418 +%-+#1.10F : +8127.5341796875 +%-+#1.30F : +8127.534179687500000000000000000000 +%-+#2F : +8127.534180 +%-+#2.F : +8128. +%-+#2.0F : +8128. +%-+#2.1F : +8127.5 +%-+#2.2F : +8127.53 +%-+#2.5F : +8127.53418 +%-+#2.10F : +8127.5341796875 +%-+#2.30F : +8127.534179687500000000000000000000 +%-+#5F : +8127.534180 +%-+#5.F : +8128. +%-+#5.0F : +8128. +%-+#5.1F : +8127.5 +%-+#5.2F : +8127.53 +%-+#5.5F : +8127.53418 +%-+#5.10F : +8127.5341796875 +%-+#5.30F : +8127.534179687500000000000000000000 +%-+#10F : +8127.534180 +%-+#10.F : +8128. +%-+#10.0F : +8128. +%-+#10.1F : +8127.5 +%-+#10.2F : +8127.53 +%-+#10.5F : +8127.53418 +%-+#10.10F : +8127.5341796875 +%-+#10.30F : +8127.534179687500000000000000000000 +%-+#30F : +8127.534180 +%-+#30.F : +8128. +%-+#30.0F : +8128. +%-+#30.1F : +8127.5 +%-+#30.2F : +8127.53 +%-+#30.5F : +8127.53418 +%-+#30.10F : +8127.5341796875 +%-+#30.30F : +8127.534179687500000000000000000000 +%0+#F : +8127.534180 +%0+#.F : +8128. +%0+#.0F : +8128. +%0+#.1F : +8127.5 +%0+#.2F : +8127.53 +%0+#.5F : +8127.53418 +%0+#.10F : +8127.5341796875 +%0+#.30F : +8127.534179687500000000000000000000 +%0+#1F : +8127.534180 +%0+#1.F : +8128. +%0+#1.0F : +8128. +%0+#1.1F : +8127.5 +%0+#1.2F : +8127.53 +%0+#1.5F : +8127.53418 +%0+#1.10F : +8127.5341796875 +%0+#1.30F : +8127.534179687500000000000000000000 +%0+#2F : +8127.534180 +%0+#2.F : +8128. +%0+#2.0F : +8128. +%0+#2.1F : +8127.5 +%0+#2.2F : +8127.53 +%0+#2.5F : +8127.53418 +%0+#2.10F : +8127.5341796875 +%0+#2.30F : +8127.534179687500000000000000000000 +%0+#5F : +8127.534180 +%0+#5.F : +8128. +%0+#5.0F : +8128. +%0+#5.1F : +8127.5 +%0+#5.2F : +8127.53 +%0+#5.5F : +8127.53418 +%0+#5.10F : +8127.5341796875 +%0+#5.30F : +8127.534179687500000000000000000000 +%0+#10F : +8127.534180 +%0+#10.F : +00008128. +%0+#10.0F : +00008128. +%0+#10.1F : +0008127.5 +%0+#10.2F : +008127.53 +%0+#10.5F : +8127.53418 +%0+#10.10F : +8127.5341796875 +%0+#10.30F : +8127.534179687500000000000000000000 +%0+#30F : +0000000000000000008127.534180 +%0+#30.F : +0000000000000000000000008128. +%0+#30.0F : +0000000000000000000000008128. +%0+#30.1F : +000000000000000000000008127.5 +%0+#30.2F : +00000000000000000000008127.53 +%0+#30.5F : +00000000000000000008127.53418 +%0+#30.10F : +000000000000008127.5341796875 +%0+#30.30F : +8127.534179687500000000000000000000 +%#-+F : +8127.534180 +%#-+.F : +8128. +%#-+.0F : +8128. +%#-+.1F : +8127.5 +%#-+.2F : +8127.53 +%#-+.5F : +8127.53418 +%#-+.10F : +8127.5341796875 +%#-+.30F : +8127.534179687500000000000000000000 +%#-+1F : +8127.534180 +%#-+1.F : +8128. +%#-+1.0F : +8128. +%#-+1.1F : +8127.5 +%#-+1.2F : +8127.53 +%#-+1.5F : +8127.53418 +%#-+1.10F : +8127.5341796875 +%#-+1.30F : +8127.534179687500000000000000000000 +%#-+2F : +8127.534180 +%#-+2.F : +8128. +%#-+2.0F : +8128. +%#-+2.1F : +8127.5 +%#-+2.2F : +8127.53 +%#-+2.5F : +8127.53418 +%#-+2.10F : +8127.5341796875 +%#-+2.30F : +8127.534179687500000000000000000000 +%#-+5F : +8127.534180 +%#-+5.F : +8128. +%#-+5.0F : +8128. +%#-+5.1F : +8127.5 +%#-+5.2F : +8127.53 +%#-+5.5F : +8127.53418 +%#-+5.10F : +8127.5341796875 +%#-+5.30F : +8127.534179687500000000000000000000 +%#-+10F : +8127.534180 +%#-+10.F : +8128. +%#-+10.0F : +8128. +%#-+10.1F : +8127.5 +%#-+10.2F : +8127.53 +%#-+10.5F : +8127.53418 +%#-+10.10F : +8127.5341796875 +%#-+10.30F : +8127.534179687500000000000000000000 +%#-+30F : +8127.534180 +%#-+30.F : +8128. +%#-+30.0F : +8128. +%#-+30.1F : +8127.5 +%#-+30.2F : +8127.53 +%#-+30.5F : +8127.53418 +%#-+30.10F : +8127.5341796875 +%#-+30.30F : +8127.534179687500000000000000000000 +%+#-F : +8127.534180 +%+#-.F : +8128. +%+#-.0F : +8128. +%+#-.1F : +8127.5 +%+#-.2F : +8127.53 +%+#-.5F : +8127.53418 +%+#-.10F : +8127.5341796875 +%+#-.30F : +8127.534179687500000000000000000000 +%+#-1F : +8127.534180 +%+#-1.F : +8128. +%+#-1.0F : +8128. +%+#-1.1F : +8127.5 +%+#-1.2F : +8127.53 +%+#-1.5F : +8127.53418 +%+#-1.10F : +8127.5341796875 +%+#-1.30F : +8127.534179687500000000000000000000 +%+#-2F : +8127.534180 +%+#-2.F : +8128. +%+#-2.0F : +8128. +%+#-2.1F : +8127.5 +%+#-2.2F : +8127.53 +%+#-2.5F : +8127.53418 +%+#-2.10F : +8127.5341796875 +%+#-2.30F : +8127.534179687500000000000000000000 +%+#-5F : +8127.534180 +%+#-5.F : +8128. +%+#-5.0F : +8128. +%+#-5.1F : +8127.5 +%+#-5.2F : +8127.53 +%+#-5.5F : +8127.53418 +%+#-5.10F : +8127.5341796875 +%+#-5.30F : +8127.534179687500000000000000000000 +%+#-10F : +8127.534180 +%+#-10.F : +8128. +%+#-10.0F : +8128. +%+#-10.1F : +8127.5 +%+#-10.2F : +8127.53 +%+#-10.5F : +8127.53418 +%+#-10.10F : +8127.5341796875 +%+#-10.30F : +8127.534179687500000000000000000000 +%+#-30F : +8127.534180 +%+#-30.F : +8128. +%+#-30.0F : +8128. +%+#-30.1F : +8127.5 +%+#-30.2F : +8127.53 +%+#-30.5F : +8127.53418 +%+#-30.10F : +8127.5341796875 +%+#-30.30F : +8127.534179687500000000000000000000 +%+e : +8.127534e+03 +%+.e : +8e+03 +%+.0e : +8e+03 +%+.1e : +8.1e+03 +%+.2e : +8.13e+03 +%+.5e : +8.12753e+03 +%+.10e : +8.1275341797e+03 +%+.30e : +8.127534179687500000000000000000e+03 +%+0e : +8.127534e+03 +%+0.e : +8e+03 +%+0.0e : +8e+03 +%+0.1e : +8.1e+03 +%+0.2e : +8.13e+03 +%+0.5e : +8.12753e+03 +%+0.10e : +8.1275341797e+03 +%+0.30e : +8.127534179687500000000000000000e+03 +%+1e : +8.127534e+03 +%+1.e : +8e+03 +%+1.0e : +8e+03 +%+1.1e : +8.1e+03 +%+1.2e : +8.13e+03 +%+1.5e : +8.12753e+03 +%+1.10e : +8.1275341797e+03 +%+1.30e : +8.127534179687500000000000000000e+03 +%+2e : +8.127534e+03 +%+2.e : +8e+03 +%+2.0e : +8e+03 +%+2.1e : +8.1e+03 +%+2.2e : +8.13e+03 +%+2.5e : +8.12753e+03 +%+2.10e : +8.1275341797e+03 +%+2.30e : +8.127534179687500000000000000000e+03 +%+5e : +8.127534e+03 +%+5.e : +8e+03 +%+5.0e : +8e+03 +%+5.1e : +8.1e+03 +%+5.2e : +8.13e+03 +%+5.5e : +8.12753e+03 +%+5.10e : +8.1275341797e+03 +%+5.30e : +8.127534179687500000000000000000e+03 +%+10e : +8.127534e+03 +%+10.e : +8e+03 +%+10.0e : +8e+03 +%+10.1e : +8.1e+03 +%+10.2e : +8.13e+03 +%+10.5e : +8.12753e+03 +%+10.10e : +8.1275341797e+03 +%+10.30e : +8.127534179687500000000000000000e+03 +%+30e : +8.127534e+03 +%+30.e : +8e+03 +%+30.0e : +8e+03 +%+30.1e : +8.1e+03 +%+30.2e : +8.13e+03 +%+30.5e : +8.12753e+03 +%+30.10e : +8.1275341797e+03 +%+30.30e : +8.127534179687500000000000000000e+03 +%-e : 8.127534e+03 +%-.e : 8e+03 +%-.0e : 8e+03 +%-.1e : 8.1e+03 +%-.2e : 8.13e+03 +%-.5e : 8.12753e+03 +%-.10e : 8.1275341797e+03 +%-.30e : 8.127534179687500000000000000000e+03 +%-1e : 8.127534e+03 +%-1.e : 8e+03 +%-1.0e : 8e+03 +%-1.1e : 8.1e+03 +%-1.2e : 8.13e+03 +%-1.5e : 8.12753e+03 +%-1.10e : 8.1275341797e+03 +%-1.30e : 8.127534179687500000000000000000e+03 +%-2e : 8.127534e+03 +%-2.e : 8e+03 +%-2.0e : 8e+03 +%-2.1e : 8.1e+03 +%-2.2e : 8.13e+03 +%-2.5e : 8.12753e+03 +%-2.10e : 8.1275341797e+03 +%-2.30e : 8.127534179687500000000000000000e+03 +%-5e : 8.127534e+03 +%-5.e : 8e+03 +%-5.0e : 8e+03 +%-5.1e : 8.1e+03 +%-5.2e : 8.13e+03 +%-5.5e : 8.12753e+03 +%-5.10e : 8.1275341797e+03 +%-5.30e : 8.127534179687500000000000000000e+03 +%-10e : 8.127534e+03 +%-10.e : 8e+03 +%-10.0e : 8e+03 +%-10.1e : 8.1e+03 +%-10.2e : 8.13e+03 +%-10.5e : 8.12753e+03 +%-10.10e : 8.1275341797e+03 +%-10.30e : 8.127534179687500000000000000000e+03 +%-30e : 8.127534e+03 +%-30.e : 8e+03 +%-30.0e : 8e+03 +%-30.1e : 8.1e+03 +%-30.2e : 8.13e+03 +%-30.5e : 8.12753e+03 +%-30.10e : 8.1275341797e+03 +%-30.30e : 8.127534179687500000000000000000e+03 +%#e : 8.127534e+03 +%#.e : 8.e+03 +%#.0e : 8.e+03 +%#.1e : 8.1e+03 +%#.2e : 8.13e+03 +%#.5e : 8.12753e+03 +%#.10e : 8.1275341797e+03 +%#.30e : 8.127534179687500000000000000000e+03 +%#0e : 8.127534e+03 +%#0.e : 8.e+03 +%#0.0e : 8.e+03 +%#0.1e : 8.1e+03 +%#0.2e : 8.13e+03 +%#0.5e : 8.12753e+03 +%#0.10e : 8.1275341797e+03 +%#0.30e : 8.127534179687500000000000000000e+03 +%#1e : 8.127534e+03 +%#1.e : 8.e+03 +%#1.0e : 8.e+03 +%#1.1e : 8.1e+03 +%#1.2e : 8.13e+03 +%#1.5e : 8.12753e+03 +%#1.10e : 8.1275341797e+03 +%#1.30e : 8.127534179687500000000000000000e+03 +%#2e : 8.127534e+03 +%#2.e : 8.e+03 +%#2.0e : 8.e+03 +%#2.1e : 8.1e+03 +%#2.2e : 8.13e+03 +%#2.5e : 8.12753e+03 +%#2.10e : 8.1275341797e+03 +%#2.30e : 8.127534179687500000000000000000e+03 +%#5e : 8.127534e+03 +%#5.e : 8.e+03 +%#5.0e : 8.e+03 +%#5.1e : 8.1e+03 +%#5.2e : 8.13e+03 +%#5.5e : 8.12753e+03 +%#5.10e : 8.1275341797e+03 +%#5.30e : 8.127534179687500000000000000000e+03 +%#10e : 8.127534e+03 +%#10.e : 8.e+03 +%#10.0e : 8.e+03 +%#10.1e : 8.1e+03 +%#10.2e : 8.13e+03 +%#10.5e : 8.12753e+03 +%#10.10e : 8.1275341797e+03 +%#10.30e : 8.127534179687500000000000000000e+03 +%#30e : 8.127534e+03 +%#30.e : 8.e+03 +%#30.0e : 8.e+03 +%#30.1e : 8.1e+03 +%#30.2e : 8.13e+03 +%#30.5e : 8.12753e+03 +%#30.10e : 8.1275341797e+03 +%#30.30e : 8.127534179687500000000000000000e+03 +%0e : 8.127534e+03 +%0.e : 8e+03 +%0.0e : 8e+03 +%0.1e : 8.1e+03 +%0.2e : 8.13e+03 +%0.5e : 8.12753e+03 +%0.10e : 8.1275341797e+03 +%0.30e : 8.127534179687500000000000000000e+03 +%01e : 8.127534e+03 +%01.e : 8e+03 +%01.0e : 8e+03 +%01.1e : 8.1e+03 +%01.2e : 8.13e+03 +%01.5e : 8.12753e+03 +%01.10e : 8.1275341797e+03 +%01.30e : 8.127534179687500000000000000000e+03 +%02e : 8.127534e+03 +%02.e : 8e+03 +%02.0e : 8e+03 +%02.1e : 8.1e+03 +%02.2e : 8.13e+03 +%02.5e : 8.12753e+03 +%02.10e : 8.1275341797e+03 +%02.30e : 8.127534179687500000000000000000e+03 +%05e : 8.127534e+03 +%05.e : 8e+03 +%05.0e : 8e+03 +%05.1e : 8.1e+03 +%05.2e : 8.13e+03 +%05.5e : 8.12753e+03 +%05.10e : 8.1275341797e+03 +%05.30e : 8.127534179687500000000000000000e+03 +%010e : 8.127534e+03 +%010.e : 000008e+03 +%010.0e : 000008e+03 +%010.1e : 0008.1e+03 +%010.2e : 008.13e+03 +%010.5e : 8.12753e+03 +%010.10e : 8.1275341797e+03 +%010.30e : 8.127534179687500000000000000000e+03 +%030e : 0000000000000000008.127534e+03 +%030.e : 00000000000000000000000008e+03 +%030.0e : 00000000000000000000000008e+03 +%030.1e : 000000000000000000000008.1e+03 +%030.2e : 00000000000000000000008.13e+03 +%030.5e : 00000000000000000008.12753e+03 +%030.10e : 000000000000008.1275341797e+03 +%030.30e : 8.127534179687500000000000000000e+03 +%-+e : +8.127534e+03 +%-+.e : +8e+03 +%-+.0e : +8e+03 +%-+.1e : +8.1e+03 +%-+.2e : +8.13e+03 +%-+.5e : +8.12753e+03 +%-+.10e : +8.1275341797e+03 +%-+.30e : +8.127534179687500000000000000000e+03 +%-+1e : +8.127534e+03 +%-+1.e : +8e+03 +%-+1.0e : +8e+03 +%-+1.1e : +8.1e+03 +%-+1.2e : +8.13e+03 +%-+1.5e : +8.12753e+03 +%-+1.10e : +8.1275341797e+03 +%-+1.30e : +8.127534179687500000000000000000e+03 +%-+2e : +8.127534e+03 +%-+2.e : +8e+03 +%-+2.0e : +8e+03 +%-+2.1e : +8.1e+03 +%-+2.2e : +8.13e+03 +%-+2.5e : +8.12753e+03 +%-+2.10e : +8.1275341797e+03 +%-+2.30e : +8.127534179687500000000000000000e+03 +%-+5e : +8.127534e+03 +%-+5.e : +8e+03 +%-+5.0e : +8e+03 +%-+5.1e : +8.1e+03 +%-+5.2e : +8.13e+03 +%-+5.5e : +8.12753e+03 +%-+5.10e : +8.1275341797e+03 +%-+5.30e : +8.127534179687500000000000000000e+03 +%-+10e : +8.127534e+03 +%-+10.e : +8e+03 +%-+10.0e : +8e+03 +%-+10.1e : +8.1e+03 +%-+10.2e : +8.13e+03 +%-+10.5e : +8.12753e+03 +%-+10.10e : +8.1275341797e+03 +%-+10.30e : +8.127534179687500000000000000000e+03 +%-+30e : +8.127534e+03 +%-+30.e : +8e+03 +%-+30.0e : +8e+03 +%-+30.1e : +8.1e+03 +%-+30.2e : +8.13e+03 +%-+30.5e : +8.12753e+03 +%-+30.10e : +8.1275341797e+03 +%-+30.30e : +8.127534179687500000000000000000e+03 +%#+e : +8.127534e+03 +%#+.e : +8.e+03 +%#+.0e : +8.e+03 +%#+.1e : +8.1e+03 +%#+.2e : +8.13e+03 +%#+.5e : +8.12753e+03 +%#+.10e : +8.1275341797e+03 +%#+.30e : +8.127534179687500000000000000000e+03 +%#+0e : +8.127534e+03 +%#+0.e : +8.e+03 +%#+0.0e : +8.e+03 +%#+0.1e : +8.1e+03 +%#+0.2e : +8.13e+03 +%#+0.5e : +8.12753e+03 +%#+0.10e : +8.1275341797e+03 +%#+0.30e : +8.127534179687500000000000000000e+03 +%#+1e : +8.127534e+03 +%#+1.e : +8.e+03 +%#+1.0e : +8.e+03 +%#+1.1e : +8.1e+03 +%#+1.2e : +8.13e+03 +%#+1.5e : +8.12753e+03 +%#+1.10e : +8.1275341797e+03 +%#+1.30e : +8.127534179687500000000000000000e+03 +%#+2e : +8.127534e+03 +%#+2.e : +8.e+03 +%#+2.0e : +8.e+03 +%#+2.1e : +8.1e+03 +%#+2.2e : +8.13e+03 +%#+2.5e : +8.12753e+03 +%#+2.10e : +8.1275341797e+03 +%#+2.30e : +8.127534179687500000000000000000e+03 +%#+5e : +8.127534e+03 +%#+5.e : +8.e+03 +%#+5.0e : +8.e+03 +%#+5.1e : +8.1e+03 +%#+5.2e : +8.13e+03 +%#+5.5e : +8.12753e+03 +%#+5.10e : +8.1275341797e+03 +%#+5.30e : +8.127534179687500000000000000000e+03 +%#+10e : +8.127534e+03 +%#+10.e : +8.e+03 +%#+10.0e : +8.e+03 +%#+10.1e : +8.1e+03 +%#+10.2e : +8.13e+03 +%#+10.5e : +8.12753e+03 +%#+10.10e : +8.1275341797e+03 +%#+10.30e : +8.127534179687500000000000000000e+03 +%#+30e : +8.127534e+03 +%#+30.e : +8.e+03 +%#+30.0e : +8.e+03 +%#+30.1e : +8.1e+03 +%#+30.2e : +8.13e+03 +%#+30.5e : +8.12753e+03 +%#+30.10e : +8.1275341797e+03 +%#+30.30e : +8.127534179687500000000000000000e+03 +%+0e : +8.127534e+03 +%+0.e : +8e+03 +%+0.0e : +8e+03 +%+0.1e : +8.1e+03 +%+0.2e : +8.13e+03 +%+0.5e : +8.12753e+03 +%+0.10e : +8.1275341797e+03 +%+0.30e : +8.127534179687500000000000000000e+03 +%+01e : +8.127534e+03 +%+01.e : +8e+03 +%+01.0e : +8e+03 +%+01.1e : +8.1e+03 +%+01.2e : +8.13e+03 +%+01.5e : +8.12753e+03 +%+01.10e : +8.1275341797e+03 +%+01.30e : +8.127534179687500000000000000000e+03 +%+02e : +8.127534e+03 +%+02.e : +8e+03 +%+02.0e : +8e+03 +%+02.1e : +8.1e+03 +%+02.2e : +8.13e+03 +%+02.5e : +8.12753e+03 +%+02.10e : +8.1275341797e+03 +%+02.30e : +8.127534179687500000000000000000e+03 +%+05e : +8.127534e+03 +%+05.e : +8e+03 +%+05.0e : +8e+03 +%+05.1e : +8.1e+03 +%+05.2e : +8.13e+03 +%+05.5e : +8.12753e+03 +%+05.10e : +8.1275341797e+03 +%+05.30e : +8.127534179687500000000000000000e+03 +%+010e : +8.127534e+03 +%+010.e : +00008e+03 +%+010.0e : +00008e+03 +%+010.1e : +008.1e+03 +%+010.2e : +08.13e+03 +%+010.5e : +8.12753e+03 +%+010.10e : +8.1275341797e+03 +%+010.30e : +8.127534179687500000000000000000e+03 +%+030e : +000000000000000008.127534e+03 +%+030.e : +0000000000000000000000008e+03 +%+030.0e : +0000000000000000000000008e+03 +%+030.1e : +00000000000000000000008.1e+03 +%+030.2e : +0000000000000000000008.13e+03 +%+030.5e : +0000000000000000008.12753e+03 +%+030.10e : +00000000000008.1275341797e+03 +%+030.30e : +8.127534179687500000000000000000e+03 +%+-e : +8.127534e+03 +%+-.e : +8e+03 +%+-.0e : +8e+03 +%+-.1e : +8.1e+03 +%+-.2e : +8.13e+03 +%+-.5e : +8.12753e+03 +%+-.10e : +8.1275341797e+03 +%+-.30e : +8.127534179687500000000000000000e+03 +%+-1e : +8.127534e+03 +%+-1.e : +8e+03 +%+-1.0e : +8e+03 +%+-1.1e : +8.1e+03 +%+-1.2e : +8.13e+03 +%+-1.5e : +8.12753e+03 +%+-1.10e : +8.1275341797e+03 +%+-1.30e : +8.127534179687500000000000000000e+03 +%+-2e : +8.127534e+03 +%+-2.e : +8e+03 +%+-2.0e : +8e+03 +%+-2.1e : +8.1e+03 +%+-2.2e : +8.13e+03 +%+-2.5e : +8.12753e+03 +%+-2.10e : +8.1275341797e+03 +%+-2.30e : +8.127534179687500000000000000000e+03 +%+-5e : +8.127534e+03 +%+-5.e : +8e+03 +%+-5.0e : +8e+03 +%+-5.1e : +8.1e+03 +%+-5.2e : +8.13e+03 +%+-5.5e : +8.12753e+03 +%+-5.10e : +8.1275341797e+03 +%+-5.30e : +8.127534179687500000000000000000e+03 +%+-10e : +8.127534e+03 +%+-10.e : +8e+03 +%+-10.0e : +8e+03 +%+-10.1e : +8.1e+03 +%+-10.2e : +8.13e+03 +%+-10.5e : +8.12753e+03 +%+-10.10e : +8.1275341797e+03 +%+-10.30e : +8.127534179687500000000000000000e+03 +%+-30e : +8.127534e+03 +%+-30.e : +8e+03 +%+-30.0e : +8e+03 +%+-30.1e : +8.1e+03 +%+-30.2e : +8.13e+03 +%+-30.5e : +8.12753e+03 +%+-30.10e : +8.1275341797e+03 +%+-30.30e : +8.127534179687500000000000000000e+03 +%#-e : 8.127534e+03 +%#-.e : 8.e+03 +%#-.0e : 8.e+03 +%#-.1e : 8.1e+03 +%#-.2e : 8.13e+03 +%#-.5e : 8.12753e+03 +%#-.10e : 8.1275341797e+03 +%#-.30e : 8.127534179687500000000000000000e+03 +%#-1e : 8.127534e+03 +%#-1.e : 8.e+03 +%#-1.0e : 8.e+03 +%#-1.1e : 8.1e+03 +%#-1.2e : 8.13e+03 +%#-1.5e : 8.12753e+03 +%#-1.10e : 8.1275341797e+03 +%#-1.30e : 8.127534179687500000000000000000e+03 +%#-2e : 8.127534e+03 +%#-2.e : 8.e+03 +%#-2.0e : 8.e+03 +%#-2.1e : 8.1e+03 +%#-2.2e : 8.13e+03 +%#-2.5e : 8.12753e+03 +%#-2.10e : 8.1275341797e+03 +%#-2.30e : 8.127534179687500000000000000000e+03 +%#-5e : 8.127534e+03 +%#-5.e : 8.e+03 +%#-5.0e : 8.e+03 +%#-5.1e : 8.1e+03 +%#-5.2e : 8.13e+03 +%#-5.5e : 8.12753e+03 +%#-5.10e : 8.1275341797e+03 +%#-5.30e : 8.127534179687500000000000000000e+03 +%#-10e : 8.127534e+03 +%#-10.e : 8.e+03 +%#-10.0e : 8.e+03 +%#-10.1e : 8.1e+03 +%#-10.2e : 8.13e+03 +%#-10.5e : 8.12753e+03 +%#-10.10e : 8.1275341797e+03 +%#-10.30e : 8.127534179687500000000000000000e+03 +%#-30e : 8.127534e+03 +%#-30.e : 8.e+03 +%#-30.0e : 8.e+03 +%#-30.1e : 8.1e+03 +%#-30.2e : 8.13e+03 +%#-30.5e : 8.12753e+03 +%#-30.10e : 8.1275341797e+03 +%#-30.30e : 8.127534179687500000000000000000e+03 +%+#e : +8.127534e+03 +%+#.e : +8.e+03 +%+#.0e : +8.e+03 +%+#.1e : +8.1e+03 +%+#.2e : +8.13e+03 +%+#.5e : +8.12753e+03 +%+#.10e : +8.1275341797e+03 +%+#.30e : +8.127534179687500000000000000000e+03 +%+#0e : +8.127534e+03 +%+#0.e : +8.e+03 +%+#0.0e : +8.e+03 +%+#0.1e : +8.1e+03 +%+#0.2e : +8.13e+03 +%+#0.5e : +8.12753e+03 +%+#0.10e : +8.1275341797e+03 +%+#0.30e : +8.127534179687500000000000000000e+03 +%+#1e : +8.127534e+03 +%+#1.e : +8.e+03 +%+#1.0e : +8.e+03 +%+#1.1e : +8.1e+03 +%+#1.2e : +8.13e+03 +%+#1.5e : +8.12753e+03 +%+#1.10e : +8.1275341797e+03 +%+#1.30e : +8.127534179687500000000000000000e+03 +%+#2e : +8.127534e+03 +%+#2.e : +8.e+03 +%+#2.0e : +8.e+03 +%+#2.1e : +8.1e+03 +%+#2.2e : +8.13e+03 +%+#2.5e : +8.12753e+03 +%+#2.10e : +8.1275341797e+03 +%+#2.30e : +8.127534179687500000000000000000e+03 +%+#5e : +8.127534e+03 +%+#5.e : +8.e+03 +%+#5.0e : +8.e+03 +%+#5.1e : +8.1e+03 +%+#5.2e : +8.13e+03 +%+#5.5e : +8.12753e+03 +%+#5.10e : +8.1275341797e+03 +%+#5.30e : +8.127534179687500000000000000000e+03 +%+#10e : +8.127534e+03 +%+#10.e : +8.e+03 +%+#10.0e : +8.e+03 +%+#10.1e : +8.1e+03 +%+#10.2e : +8.13e+03 +%+#10.5e : +8.12753e+03 +%+#10.10e : +8.1275341797e+03 +%+#10.30e : +8.127534179687500000000000000000e+03 +%+#30e : +8.127534e+03 +%+#30.e : +8.e+03 +%+#30.0e : +8.e+03 +%+#30.1e : +8.1e+03 +%+#30.2e : +8.13e+03 +%+#30.5e : +8.12753e+03 +%+#30.10e : +8.1275341797e+03 +%+#30.30e : +8.127534179687500000000000000000e+03 +%-#e : 8.127534e+03 +%-#.e : 8.e+03 +%-#.0e : 8.e+03 +%-#.1e : 8.1e+03 +%-#.2e : 8.13e+03 +%-#.5e : 8.12753e+03 +%-#.10e : 8.1275341797e+03 +%-#.30e : 8.127534179687500000000000000000e+03 +%-#1e : 8.127534e+03 +%-#1.e : 8.e+03 +%-#1.0e : 8.e+03 +%-#1.1e : 8.1e+03 +%-#1.2e : 8.13e+03 +%-#1.5e : 8.12753e+03 +%-#1.10e : 8.1275341797e+03 +%-#1.30e : 8.127534179687500000000000000000e+03 +%-#2e : 8.127534e+03 +%-#2.e : 8.e+03 +%-#2.0e : 8.e+03 +%-#2.1e : 8.1e+03 +%-#2.2e : 8.13e+03 +%-#2.5e : 8.12753e+03 +%-#2.10e : 8.1275341797e+03 +%-#2.30e : 8.127534179687500000000000000000e+03 +%-#5e : 8.127534e+03 +%-#5.e : 8.e+03 +%-#5.0e : 8.e+03 +%-#5.1e : 8.1e+03 +%-#5.2e : 8.13e+03 +%-#5.5e : 8.12753e+03 +%-#5.10e : 8.1275341797e+03 +%-#5.30e : 8.127534179687500000000000000000e+03 +%-#10e : 8.127534e+03 +%-#10.e : 8.e+03 +%-#10.0e : 8.e+03 +%-#10.1e : 8.1e+03 +%-#10.2e : 8.13e+03 +%-#10.5e : 8.12753e+03 +%-#10.10e : 8.1275341797e+03 +%-#10.30e : 8.127534179687500000000000000000e+03 +%-#30e : 8.127534e+03 +%-#30.e : 8.e+03 +%-#30.0e : 8.e+03 +%-#30.1e : 8.1e+03 +%-#30.2e : 8.13e+03 +%-#30.5e : 8.12753e+03 +%-#30.10e : 8.1275341797e+03 +%-#30.30e : 8.127534179687500000000000000000e+03 +%0#e : 8.127534e+03 +%0#.e : 8.e+03 +%0#.0e : 8.e+03 +%0#.1e : 8.1e+03 +%0#.2e : 8.13e+03 +%0#.5e : 8.12753e+03 +%0#.10e : 8.1275341797e+03 +%0#.30e : 8.127534179687500000000000000000e+03 +%0#1e : 8.127534e+03 +%0#1.e : 8.e+03 +%0#1.0e : 8.e+03 +%0#1.1e : 8.1e+03 +%0#1.2e : 8.13e+03 +%0#1.5e : 8.12753e+03 +%0#1.10e : 8.1275341797e+03 +%0#1.30e : 8.127534179687500000000000000000e+03 +%0#2e : 8.127534e+03 +%0#2.e : 8.e+03 +%0#2.0e : 8.e+03 +%0#2.1e : 8.1e+03 +%0#2.2e : 8.13e+03 +%0#2.5e : 8.12753e+03 +%0#2.10e : 8.1275341797e+03 +%0#2.30e : 8.127534179687500000000000000000e+03 +%0#5e : 8.127534e+03 +%0#5.e : 8.e+03 +%0#5.0e : 8.e+03 +%0#5.1e : 8.1e+03 +%0#5.2e : 8.13e+03 +%0#5.5e : 8.12753e+03 +%0#5.10e : 8.1275341797e+03 +%0#5.30e : 8.127534179687500000000000000000e+03 +%0#10e : 8.127534e+03 +%0#10.e : 00008.e+03 +%0#10.0e : 00008.e+03 +%0#10.1e : 0008.1e+03 +%0#10.2e : 008.13e+03 +%0#10.5e : 8.12753e+03 +%0#10.10e : 8.1275341797e+03 +%0#10.30e : 8.127534179687500000000000000000e+03 +%0#30e : 0000000000000000008.127534e+03 +%0#30.e : 0000000000000000000000008.e+03 +%0#30.0e : 0000000000000000000000008.e+03 +%0#30.1e : 000000000000000000000008.1e+03 +%0#30.2e : 00000000000000000000008.13e+03 +%0#30.5e : 00000000000000000008.12753e+03 +%0#30.10e : 000000000000008.1275341797e+03 +%0#30.30e : 8.127534179687500000000000000000e+03 +%+0e : +8.127534e+03 +%+0.e : +8e+03 +%+0.0e : +8e+03 +%+0.1e : +8.1e+03 +%+0.2e : +8.13e+03 +%+0.5e : +8.12753e+03 +%+0.10e : +8.1275341797e+03 +%+0.30e : +8.127534179687500000000000000000e+03 +%+01e : +8.127534e+03 +%+01.e : +8e+03 +%+01.0e : +8e+03 +%+01.1e : +8.1e+03 +%+01.2e : +8.13e+03 +%+01.5e : +8.12753e+03 +%+01.10e : +8.1275341797e+03 +%+01.30e : +8.127534179687500000000000000000e+03 +%+02e : +8.127534e+03 +%+02.e : +8e+03 +%+02.0e : +8e+03 +%+02.1e : +8.1e+03 +%+02.2e : +8.13e+03 +%+02.5e : +8.12753e+03 +%+02.10e : +8.1275341797e+03 +%+02.30e : +8.127534179687500000000000000000e+03 +%+05e : +8.127534e+03 +%+05.e : +8e+03 +%+05.0e : +8e+03 +%+05.1e : +8.1e+03 +%+05.2e : +8.13e+03 +%+05.5e : +8.12753e+03 +%+05.10e : +8.1275341797e+03 +%+05.30e : +8.127534179687500000000000000000e+03 +%+010e : +8.127534e+03 +%+010.e : +00008e+03 +%+010.0e : +00008e+03 +%+010.1e : +008.1e+03 +%+010.2e : +08.13e+03 +%+010.5e : +8.12753e+03 +%+010.10e : +8.1275341797e+03 +%+010.30e : +8.127534179687500000000000000000e+03 +%+030e : +000000000000000008.127534e+03 +%+030.e : +0000000000000000000000008e+03 +%+030.0e : +0000000000000000000000008e+03 +%+030.1e : +00000000000000000000008.1e+03 +%+030.2e : +0000000000000000000008.13e+03 +%+030.5e : +0000000000000000008.12753e+03 +%+030.10e : +00000000000008.1275341797e+03 +%+030.30e : +8.127534179687500000000000000000e+03 +%#0e : 8.127534e+03 +%#0.e : 8.e+03 +%#0.0e : 8.e+03 +%#0.1e : 8.1e+03 +%#0.2e : 8.13e+03 +%#0.5e : 8.12753e+03 +%#0.10e : 8.1275341797e+03 +%#0.30e : 8.127534179687500000000000000000e+03 +%#01e : 8.127534e+03 +%#01.e : 8.e+03 +%#01.0e : 8.e+03 +%#01.1e : 8.1e+03 +%#01.2e : 8.13e+03 +%#01.5e : 8.12753e+03 +%#01.10e : 8.1275341797e+03 +%#01.30e : 8.127534179687500000000000000000e+03 +%#02e : 8.127534e+03 +%#02.e : 8.e+03 +%#02.0e : 8.e+03 +%#02.1e : 8.1e+03 +%#02.2e : 8.13e+03 +%#02.5e : 8.12753e+03 +%#02.10e : 8.1275341797e+03 +%#02.30e : 8.127534179687500000000000000000e+03 +%#05e : 8.127534e+03 +%#05.e : 8.e+03 +%#05.0e : 8.e+03 +%#05.1e : 8.1e+03 +%#05.2e : 8.13e+03 +%#05.5e : 8.12753e+03 +%#05.10e : 8.1275341797e+03 +%#05.30e : 8.127534179687500000000000000000e+03 +%#010e : 8.127534e+03 +%#010.e : 00008.e+03 +%#010.0e : 00008.e+03 +%#010.1e : 0008.1e+03 +%#010.2e : 008.13e+03 +%#010.5e : 8.12753e+03 +%#010.10e : 8.1275341797e+03 +%#010.30e : 8.127534179687500000000000000000e+03 +%#030e : 0000000000000000008.127534e+03 +%#030.e : 0000000000000000000000008.e+03 +%#030.0e : 0000000000000000000000008.e+03 +%#030.1e : 000000000000000000000008.1e+03 +%#030.2e : 00000000000000000000008.13e+03 +%#030.5e : 00000000000000000008.12753e+03 +%#030.10e : 000000000000008.1275341797e+03 +%#030.30e : 8.127534179687500000000000000000e+03 +%-+#e : +8.127534e+03 +%-+#.e : +8.e+03 +%-+#.0e : +8.e+03 +%-+#.1e : +8.1e+03 +%-+#.2e : +8.13e+03 +%-+#.5e : +8.12753e+03 +%-+#.10e : +8.1275341797e+03 +%-+#.30e : +8.127534179687500000000000000000e+03 +%-+#1e : +8.127534e+03 +%-+#1.e : +8.e+03 +%-+#1.0e : +8.e+03 +%-+#1.1e : +8.1e+03 +%-+#1.2e : +8.13e+03 +%-+#1.5e : +8.12753e+03 +%-+#1.10e : +8.1275341797e+03 +%-+#1.30e : +8.127534179687500000000000000000e+03 +%-+#2e : +8.127534e+03 +%-+#2.e : +8.e+03 +%-+#2.0e : +8.e+03 +%-+#2.1e : +8.1e+03 +%-+#2.2e : +8.13e+03 +%-+#2.5e : +8.12753e+03 +%-+#2.10e : +8.1275341797e+03 +%-+#2.30e : +8.127534179687500000000000000000e+03 +%-+#5e : +8.127534e+03 +%-+#5.e : +8.e+03 +%-+#5.0e : +8.e+03 +%-+#5.1e : +8.1e+03 +%-+#5.2e : +8.13e+03 +%-+#5.5e : +8.12753e+03 +%-+#5.10e : +8.1275341797e+03 +%-+#5.30e : +8.127534179687500000000000000000e+03 +%-+#10e : +8.127534e+03 +%-+#10.e : +8.e+03 +%-+#10.0e : +8.e+03 +%-+#10.1e : +8.1e+03 +%-+#10.2e : +8.13e+03 +%-+#10.5e : +8.12753e+03 +%-+#10.10e : +8.1275341797e+03 +%-+#10.30e : +8.127534179687500000000000000000e+03 +%-+#30e : +8.127534e+03 +%-+#30.e : +8.e+03 +%-+#30.0e : +8.e+03 +%-+#30.1e : +8.1e+03 +%-+#30.2e : +8.13e+03 +%-+#30.5e : +8.12753e+03 +%-+#30.10e : +8.1275341797e+03 +%-+#30.30e : +8.127534179687500000000000000000e+03 +%0+#e : +8.127534e+03 +%0+#.e : +8.e+03 +%0+#.0e : +8.e+03 +%0+#.1e : +8.1e+03 +%0+#.2e : +8.13e+03 +%0+#.5e : +8.12753e+03 +%0+#.10e : +8.1275341797e+03 +%0+#.30e : +8.127534179687500000000000000000e+03 +%0+#1e : +8.127534e+03 +%0+#1.e : +8.e+03 +%0+#1.0e : +8.e+03 +%0+#1.1e : +8.1e+03 +%0+#1.2e : +8.13e+03 +%0+#1.5e : +8.12753e+03 +%0+#1.10e : +8.1275341797e+03 +%0+#1.30e : +8.127534179687500000000000000000e+03 +%0+#2e : +8.127534e+03 +%0+#2.e : +8.e+03 +%0+#2.0e : +8.e+03 +%0+#2.1e : +8.1e+03 +%0+#2.2e : +8.13e+03 +%0+#2.5e : +8.12753e+03 +%0+#2.10e : +8.1275341797e+03 +%0+#2.30e : +8.127534179687500000000000000000e+03 +%0+#5e : +8.127534e+03 +%0+#5.e : +8.e+03 +%0+#5.0e : +8.e+03 +%0+#5.1e : +8.1e+03 +%0+#5.2e : +8.13e+03 +%0+#5.5e : +8.12753e+03 +%0+#5.10e : +8.1275341797e+03 +%0+#5.30e : +8.127534179687500000000000000000e+03 +%0+#10e : +8.127534e+03 +%0+#10.e : +0008.e+03 +%0+#10.0e : +0008.e+03 +%0+#10.1e : +008.1e+03 +%0+#10.2e : +08.13e+03 +%0+#10.5e : +8.12753e+03 +%0+#10.10e : +8.1275341797e+03 +%0+#10.30e : +8.127534179687500000000000000000e+03 +%0+#30e : +000000000000000008.127534e+03 +%0+#30.e : +000000000000000000000008.e+03 +%0+#30.0e : +000000000000000000000008.e+03 +%0+#30.1e : +00000000000000000000008.1e+03 +%0+#30.2e : +0000000000000000000008.13e+03 +%0+#30.5e : +0000000000000000008.12753e+03 +%0+#30.10e : +00000000000008.1275341797e+03 +%0+#30.30e : +8.127534179687500000000000000000e+03 +%#-+e : +8.127534e+03 +%#-+.e : +8.e+03 +%#-+.0e : +8.e+03 +%#-+.1e : +8.1e+03 +%#-+.2e : +8.13e+03 +%#-+.5e : +8.12753e+03 +%#-+.10e : +8.1275341797e+03 +%#-+.30e : +8.127534179687500000000000000000e+03 +%#-+1e : +8.127534e+03 +%#-+1.e : +8.e+03 +%#-+1.0e : +8.e+03 +%#-+1.1e : +8.1e+03 +%#-+1.2e : +8.13e+03 +%#-+1.5e : +8.12753e+03 +%#-+1.10e : +8.1275341797e+03 +%#-+1.30e : +8.127534179687500000000000000000e+03 +%#-+2e : +8.127534e+03 +%#-+2.e : +8.e+03 +%#-+2.0e : +8.e+03 +%#-+2.1e : +8.1e+03 +%#-+2.2e : +8.13e+03 +%#-+2.5e : +8.12753e+03 +%#-+2.10e : +8.1275341797e+03 +%#-+2.30e : +8.127534179687500000000000000000e+03 +%#-+5e : +8.127534e+03 +%#-+5.e : +8.e+03 +%#-+5.0e : +8.e+03 +%#-+5.1e : +8.1e+03 +%#-+5.2e : +8.13e+03 +%#-+5.5e : +8.12753e+03 +%#-+5.10e : +8.1275341797e+03 +%#-+5.30e : +8.127534179687500000000000000000e+03 +%#-+10e : +8.127534e+03 +%#-+10.e : +8.e+03 +%#-+10.0e : +8.e+03 +%#-+10.1e : +8.1e+03 +%#-+10.2e : +8.13e+03 +%#-+10.5e : +8.12753e+03 +%#-+10.10e : +8.1275341797e+03 +%#-+10.30e : +8.127534179687500000000000000000e+03 +%#-+30e : +8.127534e+03 +%#-+30.e : +8.e+03 +%#-+30.0e : +8.e+03 +%#-+30.1e : +8.1e+03 +%#-+30.2e : +8.13e+03 +%#-+30.5e : +8.12753e+03 +%#-+30.10e : +8.1275341797e+03 +%#-+30.30e : +8.127534179687500000000000000000e+03 +%+#-e : +8.127534e+03 +%+#-.e : +8.e+03 +%+#-.0e : +8.e+03 +%+#-.1e : +8.1e+03 +%+#-.2e : +8.13e+03 +%+#-.5e : +8.12753e+03 +%+#-.10e : +8.1275341797e+03 +%+#-.30e : +8.127534179687500000000000000000e+03 +%+#-1e : +8.127534e+03 +%+#-1.e : +8.e+03 +%+#-1.0e : +8.e+03 +%+#-1.1e : +8.1e+03 +%+#-1.2e : +8.13e+03 +%+#-1.5e : +8.12753e+03 +%+#-1.10e : +8.1275341797e+03 +%+#-1.30e : +8.127534179687500000000000000000e+03 +%+#-2e : +8.127534e+03 +%+#-2.e : +8.e+03 +%+#-2.0e : +8.e+03 +%+#-2.1e : +8.1e+03 +%+#-2.2e : +8.13e+03 +%+#-2.5e : +8.12753e+03 +%+#-2.10e : +8.1275341797e+03 +%+#-2.30e : +8.127534179687500000000000000000e+03 +%+#-5e : +8.127534e+03 +%+#-5.e : +8.e+03 +%+#-5.0e : +8.e+03 +%+#-5.1e : +8.1e+03 +%+#-5.2e : +8.13e+03 +%+#-5.5e : +8.12753e+03 +%+#-5.10e : +8.1275341797e+03 +%+#-5.30e : +8.127534179687500000000000000000e+03 +%+#-10e : +8.127534e+03 +%+#-10.e : +8.e+03 +%+#-10.0e : +8.e+03 +%+#-10.1e : +8.1e+03 +%+#-10.2e : +8.13e+03 +%+#-10.5e : +8.12753e+03 +%+#-10.10e : +8.1275341797e+03 +%+#-10.30e : +8.127534179687500000000000000000e+03 +%+#-30e : +8.127534e+03 +%+#-30.e : +8.e+03 +%+#-30.0e : +8.e+03 +%+#-30.1e : +8.1e+03 +%+#-30.2e : +8.13e+03 +%+#-30.5e : +8.12753e+03 +%+#-30.10e : +8.1275341797e+03 +%+#-30.30e : +8.127534179687500000000000000000e+03 +%+E : +8.127534E+03 +%+.E : +8E+03 +%+.0E : +8E+03 +%+.1E : +8.1E+03 +%+.2E : +8.13E+03 +%+.5E : +8.12753E+03 +%+.10E : +8.1275341797E+03 +%+.30E : +8.127534179687500000000000000000E+03 +%+0E : +8.127534E+03 +%+0.E : +8E+03 +%+0.0E : +8E+03 +%+0.1E : +8.1E+03 +%+0.2E : +8.13E+03 +%+0.5E : +8.12753E+03 +%+0.10E : +8.1275341797E+03 +%+0.30E : +8.127534179687500000000000000000E+03 +%+1E : +8.127534E+03 +%+1.E : +8E+03 +%+1.0E : +8E+03 +%+1.1E : +8.1E+03 +%+1.2E : +8.13E+03 +%+1.5E : +8.12753E+03 +%+1.10E : +8.1275341797E+03 +%+1.30E : +8.127534179687500000000000000000E+03 +%+2E : +8.127534E+03 +%+2.E : +8E+03 +%+2.0E : +8E+03 +%+2.1E : +8.1E+03 +%+2.2E : +8.13E+03 +%+2.5E : +8.12753E+03 +%+2.10E : +8.1275341797E+03 +%+2.30E : +8.127534179687500000000000000000E+03 +%+5E : +8.127534E+03 +%+5.E : +8E+03 +%+5.0E : +8E+03 +%+5.1E : +8.1E+03 +%+5.2E : +8.13E+03 +%+5.5E : +8.12753E+03 +%+5.10E : +8.1275341797E+03 +%+5.30E : +8.127534179687500000000000000000E+03 +%+10E : +8.127534E+03 +%+10.E : +8E+03 +%+10.0E : +8E+03 +%+10.1E : +8.1E+03 +%+10.2E : +8.13E+03 +%+10.5E : +8.12753E+03 +%+10.10E : +8.1275341797E+03 +%+10.30E : +8.127534179687500000000000000000E+03 +%+30E : +8.127534E+03 +%+30.E : +8E+03 +%+30.0E : +8E+03 +%+30.1E : +8.1E+03 +%+30.2E : +8.13E+03 +%+30.5E : +8.12753E+03 +%+30.10E : +8.1275341797E+03 +%+30.30E : +8.127534179687500000000000000000E+03 +%-E : 8.127534E+03 +%-.E : 8E+03 +%-.0E : 8E+03 +%-.1E : 8.1E+03 +%-.2E : 8.13E+03 +%-.5E : 8.12753E+03 +%-.10E : 8.1275341797E+03 +%-.30E : 8.127534179687500000000000000000E+03 +%-1E : 8.127534E+03 +%-1.E : 8E+03 +%-1.0E : 8E+03 +%-1.1E : 8.1E+03 +%-1.2E : 8.13E+03 +%-1.5E : 8.12753E+03 +%-1.10E : 8.1275341797E+03 +%-1.30E : 8.127534179687500000000000000000E+03 +%-2E : 8.127534E+03 +%-2.E : 8E+03 +%-2.0E : 8E+03 +%-2.1E : 8.1E+03 +%-2.2E : 8.13E+03 +%-2.5E : 8.12753E+03 +%-2.10E : 8.1275341797E+03 +%-2.30E : 8.127534179687500000000000000000E+03 +%-5E : 8.127534E+03 +%-5.E : 8E+03 +%-5.0E : 8E+03 +%-5.1E : 8.1E+03 +%-5.2E : 8.13E+03 +%-5.5E : 8.12753E+03 +%-5.10E : 8.1275341797E+03 +%-5.30E : 8.127534179687500000000000000000E+03 +%-10E : 8.127534E+03 +%-10.E : 8E+03 +%-10.0E : 8E+03 +%-10.1E : 8.1E+03 +%-10.2E : 8.13E+03 +%-10.5E : 8.12753E+03 +%-10.10E : 8.1275341797E+03 +%-10.30E : 8.127534179687500000000000000000E+03 +%-30E : 8.127534E+03 +%-30.E : 8E+03 +%-30.0E : 8E+03 +%-30.1E : 8.1E+03 +%-30.2E : 8.13E+03 +%-30.5E : 8.12753E+03 +%-30.10E : 8.1275341797E+03 +%-30.30E : 8.127534179687500000000000000000E+03 +%#E : 8.127534E+03 +%#.E : 8.E+03 +%#.0E : 8.E+03 +%#.1E : 8.1E+03 +%#.2E : 8.13E+03 +%#.5E : 8.12753E+03 +%#.10E : 8.1275341797E+03 +%#.30E : 8.127534179687500000000000000000E+03 +%#0E : 8.127534E+03 +%#0.E : 8.E+03 +%#0.0E : 8.E+03 +%#0.1E : 8.1E+03 +%#0.2E : 8.13E+03 +%#0.5E : 8.12753E+03 +%#0.10E : 8.1275341797E+03 +%#0.30E : 8.127534179687500000000000000000E+03 +%#1E : 8.127534E+03 +%#1.E : 8.E+03 +%#1.0E : 8.E+03 +%#1.1E : 8.1E+03 +%#1.2E : 8.13E+03 +%#1.5E : 8.12753E+03 +%#1.10E : 8.1275341797E+03 +%#1.30E : 8.127534179687500000000000000000E+03 +%#2E : 8.127534E+03 +%#2.E : 8.E+03 +%#2.0E : 8.E+03 +%#2.1E : 8.1E+03 +%#2.2E : 8.13E+03 +%#2.5E : 8.12753E+03 +%#2.10E : 8.1275341797E+03 +%#2.30E : 8.127534179687500000000000000000E+03 +%#5E : 8.127534E+03 +%#5.E : 8.E+03 +%#5.0E : 8.E+03 +%#5.1E : 8.1E+03 +%#5.2E : 8.13E+03 +%#5.5E : 8.12753E+03 +%#5.10E : 8.1275341797E+03 +%#5.30E : 8.127534179687500000000000000000E+03 +%#10E : 8.127534E+03 +%#10.E : 8.E+03 +%#10.0E : 8.E+03 +%#10.1E : 8.1E+03 +%#10.2E : 8.13E+03 +%#10.5E : 8.12753E+03 +%#10.10E : 8.1275341797E+03 +%#10.30E : 8.127534179687500000000000000000E+03 +%#30E : 8.127534E+03 +%#30.E : 8.E+03 +%#30.0E : 8.E+03 +%#30.1E : 8.1E+03 +%#30.2E : 8.13E+03 +%#30.5E : 8.12753E+03 +%#30.10E : 8.1275341797E+03 +%#30.30E : 8.127534179687500000000000000000E+03 +%0E : 8.127534E+03 +%0.E : 8E+03 +%0.0E : 8E+03 +%0.1E : 8.1E+03 +%0.2E : 8.13E+03 +%0.5E : 8.12753E+03 +%0.10E : 8.1275341797E+03 +%0.30E : 8.127534179687500000000000000000E+03 +%01E : 8.127534E+03 +%01.E : 8E+03 +%01.0E : 8E+03 +%01.1E : 8.1E+03 +%01.2E : 8.13E+03 +%01.5E : 8.12753E+03 +%01.10E : 8.1275341797E+03 +%01.30E : 8.127534179687500000000000000000E+03 +%02E : 8.127534E+03 +%02.E : 8E+03 +%02.0E : 8E+03 +%02.1E : 8.1E+03 +%02.2E : 8.13E+03 +%02.5E : 8.12753E+03 +%02.10E : 8.1275341797E+03 +%02.30E : 8.127534179687500000000000000000E+03 +%05E : 8.127534E+03 +%05.E : 8E+03 +%05.0E : 8E+03 +%05.1E : 8.1E+03 +%05.2E : 8.13E+03 +%05.5E : 8.12753E+03 +%05.10E : 8.1275341797E+03 +%05.30E : 8.127534179687500000000000000000E+03 +%010E : 8.127534E+03 +%010.E : 000008E+03 +%010.0E : 000008E+03 +%010.1E : 0008.1E+03 +%010.2E : 008.13E+03 +%010.5E : 8.12753E+03 +%010.10E : 8.1275341797E+03 +%010.30E : 8.127534179687500000000000000000E+03 +%030E : 0000000000000000008.127534E+03 +%030.E : 00000000000000000000000008E+03 +%030.0E : 00000000000000000000000008E+03 +%030.1E : 000000000000000000000008.1E+03 +%030.2E : 00000000000000000000008.13E+03 +%030.5E : 00000000000000000008.12753E+03 +%030.10E : 000000000000008.1275341797E+03 +%030.30E : 8.127534179687500000000000000000E+03 +%-+E : +8.127534E+03 +%-+.E : +8E+03 +%-+.0E : +8E+03 +%-+.1E : +8.1E+03 +%-+.2E : +8.13E+03 +%-+.5E : +8.12753E+03 +%-+.10E : +8.1275341797E+03 +%-+.30E : +8.127534179687500000000000000000E+03 +%-+1E : +8.127534E+03 +%-+1.E : +8E+03 +%-+1.0E : +8E+03 +%-+1.1E : +8.1E+03 +%-+1.2E : +8.13E+03 +%-+1.5E : +8.12753E+03 +%-+1.10E : +8.1275341797E+03 +%-+1.30E : +8.127534179687500000000000000000E+03 +%-+2E : +8.127534E+03 +%-+2.E : +8E+03 +%-+2.0E : +8E+03 +%-+2.1E : +8.1E+03 +%-+2.2E : +8.13E+03 +%-+2.5E : +8.12753E+03 +%-+2.10E : +8.1275341797E+03 +%-+2.30E : +8.127534179687500000000000000000E+03 +%-+5E : +8.127534E+03 +%-+5.E : +8E+03 +%-+5.0E : +8E+03 +%-+5.1E : +8.1E+03 +%-+5.2E : +8.13E+03 +%-+5.5E : +8.12753E+03 +%-+5.10E : +8.1275341797E+03 +%-+5.30E : +8.127534179687500000000000000000E+03 +%-+10E : +8.127534E+03 +%-+10.E : +8E+03 +%-+10.0E : +8E+03 +%-+10.1E : +8.1E+03 +%-+10.2E : +8.13E+03 +%-+10.5E : +8.12753E+03 +%-+10.10E : +8.1275341797E+03 +%-+10.30E : +8.127534179687500000000000000000E+03 +%-+30E : +8.127534E+03 +%-+30.E : +8E+03 +%-+30.0E : +8E+03 +%-+30.1E : +8.1E+03 +%-+30.2E : +8.13E+03 +%-+30.5E : +8.12753E+03 +%-+30.10E : +8.1275341797E+03 +%-+30.30E : +8.127534179687500000000000000000E+03 +%#+E : +8.127534E+03 +%#+.E : +8.E+03 +%#+.0E : +8.E+03 +%#+.1E : +8.1E+03 +%#+.2E : +8.13E+03 +%#+.5E : +8.12753E+03 +%#+.10E : +8.1275341797E+03 +%#+.30E : +8.127534179687500000000000000000E+03 +%#+0E : +8.127534E+03 +%#+0.E : +8.E+03 +%#+0.0E : +8.E+03 +%#+0.1E : +8.1E+03 +%#+0.2E : +8.13E+03 +%#+0.5E : +8.12753E+03 +%#+0.10E : +8.1275341797E+03 +%#+0.30E : +8.127534179687500000000000000000E+03 +%#+1E : +8.127534E+03 +%#+1.E : +8.E+03 +%#+1.0E : +8.E+03 +%#+1.1E : +8.1E+03 +%#+1.2E : +8.13E+03 +%#+1.5E : +8.12753E+03 +%#+1.10E : +8.1275341797E+03 +%#+1.30E : +8.127534179687500000000000000000E+03 +%#+2E : +8.127534E+03 +%#+2.E : +8.E+03 +%#+2.0E : +8.E+03 +%#+2.1E : +8.1E+03 +%#+2.2E : +8.13E+03 +%#+2.5E : +8.12753E+03 +%#+2.10E : +8.1275341797E+03 +%#+2.30E : +8.127534179687500000000000000000E+03 +%#+5E : +8.127534E+03 +%#+5.E : +8.E+03 +%#+5.0E : +8.E+03 +%#+5.1E : +8.1E+03 +%#+5.2E : +8.13E+03 +%#+5.5E : +8.12753E+03 +%#+5.10E : +8.1275341797E+03 +%#+5.30E : +8.127534179687500000000000000000E+03 +%#+10E : +8.127534E+03 +%#+10.E : +8.E+03 +%#+10.0E : +8.E+03 +%#+10.1E : +8.1E+03 +%#+10.2E : +8.13E+03 +%#+10.5E : +8.12753E+03 +%#+10.10E : +8.1275341797E+03 +%#+10.30E : +8.127534179687500000000000000000E+03 +%#+30E : +8.127534E+03 +%#+30.E : +8.E+03 +%#+30.0E : +8.E+03 +%#+30.1E : +8.1E+03 +%#+30.2E : +8.13E+03 +%#+30.5E : +8.12753E+03 +%#+30.10E : +8.1275341797E+03 +%#+30.30E : +8.127534179687500000000000000000E+03 +%+0E : +8.127534E+03 +%+0.E : +8E+03 +%+0.0E : +8E+03 +%+0.1E : +8.1E+03 +%+0.2E : +8.13E+03 +%+0.5E : +8.12753E+03 +%+0.10E : +8.1275341797E+03 +%+0.30E : +8.127534179687500000000000000000E+03 +%+01E : +8.127534E+03 +%+01.E : +8E+03 +%+01.0E : +8E+03 +%+01.1E : +8.1E+03 +%+01.2E : +8.13E+03 +%+01.5E : +8.12753E+03 +%+01.10E : +8.1275341797E+03 +%+01.30E : +8.127534179687500000000000000000E+03 +%+02E : +8.127534E+03 +%+02.E : +8E+03 +%+02.0E : +8E+03 +%+02.1E : +8.1E+03 +%+02.2E : +8.13E+03 +%+02.5E : +8.12753E+03 +%+02.10E : +8.1275341797E+03 +%+02.30E : +8.127534179687500000000000000000E+03 +%+05E : +8.127534E+03 +%+05.E : +8E+03 +%+05.0E : +8E+03 +%+05.1E : +8.1E+03 +%+05.2E : +8.13E+03 +%+05.5E : +8.12753E+03 +%+05.10E : +8.1275341797E+03 +%+05.30E : +8.127534179687500000000000000000E+03 +%+010E : +8.127534E+03 +%+010.E : +00008E+03 +%+010.0E : +00008E+03 +%+010.1E : +008.1E+03 +%+010.2E : +08.13E+03 +%+010.5E : +8.12753E+03 +%+010.10E : +8.1275341797E+03 +%+010.30E : +8.127534179687500000000000000000E+03 +%+030E : +000000000000000008.127534E+03 +%+030.E : +0000000000000000000000008E+03 +%+030.0E : +0000000000000000000000008E+03 +%+030.1E : +00000000000000000000008.1E+03 +%+030.2E : +0000000000000000000008.13E+03 +%+030.5E : +0000000000000000008.12753E+03 +%+030.10E : +00000000000008.1275341797E+03 +%+030.30E : +8.127534179687500000000000000000E+03 +%+-E : +8.127534E+03 +%+-.E : +8E+03 +%+-.0E : +8E+03 +%+-.1E : +8.1E+03 +%+-.2E : +8.13E+03 +%+-.5E : +8.12753E+03 +%+-.10E : +8.1275341797E+03 +%+-.30E : +8.127534179687500000000000000000E+03 +%+-1E : +8.127534E+03 +%+-1.E : +8E+03 +%+-1.0E : +8E+03 +%+-1.1E : +8.1E+03 +%+-1.2E : +8.13E+03 +%+-1.5E : +8.12753E+03 +%+-1.10E : +8.1275341797E+03 +%+-1.30E : +8.127534179687500000000000000000E+03 +%+-2E : +8.127534E+03 +%+-2.E : +8E+03 +%+-2.0E : +8E+03 +%+-2.1E : +8.1E+03 +%+-2.2E : +8.13E+03 +%+-2.5E : +8.12753E+03 +%+-2.10E : +8.1275341797E+03 +%+-2.30E : +8.127534179687500000000000000000E+03 +%+-5E : +8.127534E+03 +%+-5.E : +8E+03 +%+-5.0E : +8E+03 +%+-5.1E : +8.1E+03 +%+-5.2E : +8.13E+03 +%+-5.5E : +8.12753E+03 +%+-5.10E : +8.1275341797E+03 +%+-5.30E : +8.127534179687500000000000000000E+03 +%+-10E : +8.127534E+03 +%+-10.E : +8E+03 +%+-10.0E : +8E+03 +%+-10.1E : +8.1E+03 +%+-10.2E : +8.13E+03 +%+-10.5E : +8.12753E+03 +%+-10.10E : +8.1275341797E+03 +%+-10.30E : +8.127534179687500000000000000000E+03 +%+-30E : +8.127534E+03 +%+-30.E : +8E+03 +%+-30.0E : +8E+03 +%+-30.1E : +8.1E+03 +%+-30.2E : +8.13E+03 +%+-30.5E : +8.12753E+03 +%+-30.10E : +8.1275341797E+03 +%+-30.30E : +8.127534179687500000000000000000E+03 +%#-E : 8.127534E+03 +%#-.E : 8.E+03 +%#-.0E : 8.E+03 +%#-.1E : 8.1E+03 +%#-.2E : 8.13E+03 +%#-.5E : 8.12753E+03 +%#-.10E : 8.1275341797E+03 +%#-.30E : 8.127534179687500000000000000000E+03 +%#-1E : 8.127534E+03 +%#-1.E : 8.E+03 +%#-1.0E : 8.E+03 +%#-1.1E : 8.1E+03 +%#-1.2E : 8.13E+03 +%#-1.5E : 8.12753E+03 +%#-1.10E : 8.1275341797E+03 +%#-1.30E : 8.127534179687500000000000000000E+03 +%#-2E : 8.127534E+03 +%#-2.E : 8.E+03 +%#-2.0E : 8.E+03 +%#-2.1E : 8.1E+03 +%#-2.2E : 8.13E+03 +%#-2.5E : 8.12753E+03 +%#-2.10E : 8.1275341797E+03 +%#-2.30E : 8.127534179687500000000000000000E+03 +%#-5E : 8.127534E+03 +%#-5.E : 8.E+03 +%#-5.0E : 8.E+03 +%#-5.1E : 8.1E+03 +%#-5.2E : 8.13E+03 +%#-5.5E : 8.12753E+03 +%#-5.10E : 8.1275341797E+03 +%#-5.30E : 8.127534179687500000000000000000E+03 +%#-10E : 8.127534E+03 +%#-10.E : 8.E+03 +%#-10.0E : 8.E+03 +%#-10.1E : 8.1E+03 +%#-10.2E : 8.13E+03 +%#-10.5E : 8.12753E+03 +%#-10.10E : 8.1275341797E+03 +%#-10.30E : 8.127534179687500000000000000000E+03 +%#-30E : 8.127534E+03 +%#-30.E : 8.E+03 +%#-30.0E : 8.E+03 +%#-30.1E : 8.1E+03 +%#-30.2E : 8.13E+03 +%#-30.5E : 8.12753E+03 +%#-30.10E : 8.1275341797E+03 +%#-30.30E : 8.127534179687500000000000000000E+03 +%+#E : +8.127534E+03 +%+#.E : +8.E+03 +%+#.0E : +8.E+03 +%+#.1E : +8.1E+03 +%+#.2E : +8.13E+03 +%+#.5E : +8.12753E+03 +%+#.10E : +8.1275341797E+03 +%+#.30E : +8.127534179687500000000000000000E+03 +%+#0E : +8.127534E+03 +%+#0.E : +8.E+03 +%+#0.0E : +8.E+03 +%+#0.1E : +8.1E+03 +%+#0.2E : +8.13E+03 +%+#0.5E : +8.12753E+03 +%+#0.10E : +8.1275341797E+03 +%+#0.30E : +8.127534179687500000000000000000E+03 +%+#1E : +8.127534E+03 +%+#1.E : +8.E+03 +%+#1.0E : +8.E+03 +%+#1.1E : +8.1E+03 +%+#1.2E : +8.13E+03 +%+#1.5E : +8.12753E+03 +%+#1.10E : +8.1275341797E+03 +%+#1.30E : +8.127534179687500000000000000000E+03 +%+#2E : +8.127534E+03 +%+#2.E : +8.E+03 +%+#2.0E : +8.E+03 +%+#2.1E : +8.1E+03 +%+#2.2E : +8.13E+03 +%+#2.5E : +8.12753E+03 +%+#2.10E : +8.1275341797E+03 +%+#2.30E : +8.127534179687500000000000000000E+03 +%+#5E : +8.127534E+03 +%+#5.E : +8.E+03 +%+#5.0E : +8.E+03 +%+#5.1E : +8.1E+03 +%+#5.2E : +8.13E+03 +%+#5.5E : +8.12753E+03 +%+#5.10E : +8.1275341797E+03 +%+#5.30E : +8.127534179687500000000000000000E+03 +%+#10E : +8.127534E+03 +%+#10.E : +8.E+03 +%+#10.0E : +8.E+03 +%+#10.1E : +8.1E+03 +%+#10.2E : +8.13E+03 +%+#10.5E : +8.12753E+03 +%+#10.10E : +8.1275341797E+03 +%+#10.30E : +8.127534179687500000000000000000E+03 +%+#30E : +8.127534E+03 +%+#30.E : +8.E+03 +%+#30.0E : +8.E+03 +%+#30.1E : +8.1E+03 +%+#30.2E : +8.13E+03 +%+#30.5E : +8.12753E+03 +%+#30.10E : +8.1275341797E+03 +%+#30.30E : +8.127534179687500000000000000000E+03 +%-#E : 8.127534E+03 +%-#.E : 8.E+03 +%-#.0E : 8.E+03 +%-#.1E : 8.1E+03 +%-#.2E : 8.13E+03 +%-#.5E : 8.12753E+03 +%-#.10E : 8.1275341797E+03 +%-#.30E : 8.127534179687500000000000000000E+03 +%-#1E : 8.127534E+03 +%-#1.E : 8.E+03 +%-#1.0E : 8.E+03 +%-#1.1E : 8.1E+03 +%-#1.2E : 8.13E+03 +%-#1.5E : 8.12753E+03 +%-#1.10E : 8.1275341797E+03 +%-#1.30E : 8.127534179687500000000000000000E+03 +%-#2E : 8.127534E+03 +%-#2.E : 8.E+03 +%-#2.0E : 8.E+03 +%-#2.1E : 8.1E+03 +%-#2.2E : 8.13E+03 +%-#2.5E : 8.12753E+03 +%-#2.10E : 8.1275341797E+03 +%-#2.30E : 8.127534179687500000000000000000E+03 +%-#5E : 8.127534E+03 +%-#5.E : 8.E+03 +%-#5.0E : 8.E+03 +%-#5.1E : 8.1E+03 +%-#5.2E : 8.13E+03 +%-#5.5E : 8.12753E+03 +%-#5.10E : 8.1275341797E+03 +%-#5.30E : 8.127534179687500000000000000000E+03 +%-#10E : 8.127534E+03 +%-#10.E : 8.E+03 +%-#10.0E : 8.E+03 +%-#10.1E : 8.1E+03 +%-#10.2E : 8.13E+03 +%-#10.5E : 8.12753E+03 +%-#10.10E : 8.1275341797E+03 +%-#10.30E : 8.127534179687500000000000000000E+03 +%-#30E : 8.127534E+03 +%-#30.E : 8.E+03 +%-#30.0E : 8.E+03 +%-#30.1E : 8.1E+03 +%-#30.2E : 8.13E+03 +%-#30.5E : 8.12753E+03 +%-#30.10E : 8.1275341797E+03 +%-#30.30E : 8.127534179687500000000000000000E+03 +%0#E : 8.127534E+03 +%0#.E : 8.E+03 +%0#.0E : 8.E+03 +%0#.1E : 8.1E+03 +%0#.2E : 8.13E+03 +%0#.5E : 8.12753E+03 +%0#.10E : 8.1275341797E+03 +%0#.30E : 8.127534179687500000000000000000E+03 +%0#1E : 8.127534E+03 +%0#1.E : 8.E+03 +%0#1.0E : 8.E+03 +%0#1.1E : 8.1E+03 +%0#1.2E : 8.13E+03 +%0#1.5E : 8.12753E+03 +%0#1.10E : 8.1275341797E+03 +%0#1.30E : 8.127534179687500000000000000000E+03 +%0#2E : 8.127534E+03 +%0#2.E : 8.E+03 +%0#2.0E : 8.E+03 +%0#2.1E : 8.1E+03 +%0#2.2E : 8.13E+03 +%0#2.5E : 8.12753E+03 +%0#2.10E : 8.1275341797E+03 +%0#2.30E : 8.127534179687500000000000000000E+03 +%0#5E : 8.127534E+03 +%0#5.E : 8.E+03 +%0#5.0E : 8.E+03 +%0#5.1E : 8.1E+03 +%0#5.2E : 8.13E+03 +%0#5.5E : 8.12753E+03 +%0#5.10E : 8.1275341797E+03 +%0#5.30E : 8.127534179687500000000000000000E+03 +%0#10E : 8.127534E+03 +%0#10.E : 00008.E+03 +%0#10.0E : 00008.E+03 +%0#10.1E : 0008.1E+03 +%0#10.2E : 008.13E+03 +%0#10.5E : 8.12753E+03 +%0#10.10E : 8.1275341797E+03 +%0#10.30E : 8.127534179687500000000000000000E+03 +%0#30E : 0000000000000000008.127534E+03 +%0#30.E : 0000000000000000000000008.E+03 +%0#30.0E : 0000000000000000000000008.E+03 +%0#30.1E : 000000000000000000000008.1E+03 +%0#30.2E : 00000000000000000000008.13E+03 +%0#30.5E : 00000000000000000008.12753E+03 +%0#30.10E : 000000000000008.1275341797E+03 +%0#30.30E : 8.127534179687500000000000000000E+03 +%+0E : +8.127534E+03 +%+0.E : +8E+03 +%+0.0E : +8E+03 +%+0.1E : +8.1E+03 +%+0.2E : +8.13E+03 +%+0.5E : +8.12753E+03 +%+0.10E : +8.1275341797E+03 +%+0.30E : +8.127534179687500000000000000000E+03 +%+01E : +8.127534E+03 +%+01.E : +8E+03 +%+01.0E : +8E+03 +%+01.1E : +8.1E+03 +%+01.2E : +8.13E+03 +%+01.5E : +8.12753E+03 +%+01.10E : +8.1275341797E+03 +%+01.30E : +8.127534179687500000000000000000E+03 +%+02E : +8.127534E+03 +%+02.E : +8E+03 +%+02.0E : +8E+03 +%+02.1E : +8.1E+03 +%+02.2E : +8.13E+03 +%+02.5E : +8.12753E+03 +%+02.10E : +8.1275341797E+03 +%+02.30E : +8.127534179687500000000000000000E+03 +%+05E : +8.127534E+03 +%+05.E : +8E+03 +%+05.0E : +8E+03 +%+05.1E : +8.1E+03 +%+05.2E : +8.13E+03 +%+05.5E : +8.12753E+03 +%+05.10E : +8.1275341797E+03 +%+05.30E : +8.127534179687500000000000000000E+03 +%+010E : +8.127534E+03 +%+010.E : +00008E+03 +%+010.0E : +00008E+03 +%+010.1E : +008.1E+03 +%+010.2E : +08.13E+03 +%+010.5E : +8.12753E+03 +%+010.10E : +8.1275341797E+03 +%+010.30E : +8.127534179687500000000000000000E+03 +%+030E : +000000000000000008.127534E+03 +%+030.E : +0000000000000000000000008E+03 +%+030.0E : +0000000000000000000000008E+03 +%+030.1E : +00000000000000000000008.1E+03 +%+030.2E : +0000000000000000000008.13E+03 +%+030.5E : +0000000000000000008.12753E+03 +%+030.10E : +00000000000008.1275341797E+03 +%+030.30E : +8.127534179687500000000000000000E+03 +%#0E : 8.127534E+03 +%#0.E : 8.E+03 +%#0.0E : 8.E+03 +%#0.1E : 8.1E+03 +%#0.2E : 8.13E+03 +%#0.5E : 8.12753E+03 +%#0.10E : 8.1275341797E+03 +%#0.30E : 8.127534179687500000000000000000E+03 +%#01E : 8.127534E+03 +%#01.E : 8.E+03 +%#01.0E : 8.E+03 +%#01.1E : 8.1E+03 +%#01.2E : 8.13E+03 +%#01.5E : 8.12753E+03 +%#01.10E : 8.1275341797E+03 +%#01.30E : 8.127534179687500000000000000000E+03 +%#02E : 8.127534E+03 +%#02.E : 8.E+03 +%#02.0E : 8.E+03 +%#02.1E : 8.1E+03 +%#02.2E : 8.13E+03 +%#02.5E : 8.12753E+03 +%#02.10E : 8.1275341797E+03 +%#02.30E : 8.127534179687500000000000000000E+03 +%#05E : 8.127534E+03 +%#05.E : 8.E+03 +%#05.0E : 8.E+03 +%#05.1E : 8.1E+03 +%#05.2E : 8.13E+03 +%#05.5E : 8.12753E+03 +%#05.10E : 8.1275341797E+03 +%#05.30E : 8.127534179687500000000000000000E+03 +%#010E : 8.127534E+03 +%#010.E : 00008.E+03 +%#010.0E : 00008.E+03 +%#010.1E : 0008.1E+03 +%#010.2E : 008.13E+03 +%#010.5E : 8.12753E+03 +%#010.10E : 8.1275341797E+03 +%#010.30E : 8.127534179687500000000000000000E+03 +%#030E : 0000000000000000008.127534E+03 +%#030.E : 0000000000000000000000008.E+03 +%#030.0E : 0000000000000000000000008.E+03 +%#030.1E : 000000000000000000000008.1E+03 +%#030.2E : 00000000000000000000008.13E+03 +%#030.5E : 00000000000000000008.12753E+03 +%#030.10E : 000000000000008.1275341797E+03 +%#030.30E : 8.127534179687500000000000000000E+03 +%-+#E : +8.127534E+03 +%-+#.E : +8.E+03 +%-+#.0E : +8.E+03 +%-+#.1E : +8.1E+03 +%-+#.2E : +8.13E+03 +%-+#.5E : +8.12753E+03 +%-+#.10E : +8.1275341797E+03 +%-+#.30E : +8.127534179687500000000000000000E+03 +%-+#1E : +8.127534E+03 +%-+#1.E : +8.E+03 +%-+#1.0E : +8.E+03 +%-+#1.1E : +8.1E+03 +%-+#1.2E : +8.13E+03 +%-+#1.5E : +8.12753E+03 +%-+#1.10E : +8.1275341797E+03 +%-+#1.30E : +8.127534179687500000000000000000E+03 +%-+#2E : +8.127534E+03 +%-+#2.E : +8.E+03 +%-+#2.0E : +8.E+03 +%-+#2.1E : +8.1E+03 +%-+#2.2E : +8.13E+03 +%-+#2.5E : +8.12753E+03 +%-+#2.10E : +8.1275341797E+03 +%-+#2.30E : +8.127534179687500000000000000000E+03 +%-+#5E : +8.127534E+03 +%-+#5.E : +8.E+03 +%-+#5.0E : +8.E+03 +%-+#5.1E : +8.1E+03 +%-+#5.2E : +8.13E+03 +%-+#5.5E : +8.12753E+03 +%-+#5.10E : +8.1275341797E+03 +%-+#5.30E : +8.127534179687500000000000000000E+03 +%-+#10E : +8.127534E+03 +%-+#10.E : +8.E+03 +%-+#10.0E : +8.E+03 +%-+#10.1E : +8.1E+03 +%-+#10.2E : +8.13E+03 +%-+#10.5E : +8.12753E+03 +%-+#10.10E : +8.1275341797E+03 +%-+#10.30E : +8.127534179687500000000000000000E+03 +%-+#30E : +8.127534E+03 +%-+#30.E : +8.E+03 +%-+#30.0E : +8.E+03 +%-+#30.1E : +8.1E+03 +%-+#30.2E : +8.13E+03 +%-+#30.5E : +8.12753E+03 +%-+#30.10E : +8.1275341797E+03 +%-+#30.30E : +8.127534179687500000000000000000E+03 +%0+#E : +8.127534E+03 +%0+#.E : +8.E+03 +%0+#.0E : +8.E+03 +%0+#.1E : +8.1E+03 +%0+#.2E : +8.13E+03 +%0+#.5E : +8.12753E+03 +%0+#.10E : +8.1275341797E+03 +%0+#.30E : +8.127534179687500000000000000000E+03 +%0+#1E : +8.127534E+03 +%0+#1.E : +8.E+03 +%0+#1.0E : +8.E+03 +%0+#1.1E : +8.1E+03 +%0+#1.2E : +8.13E+03 +%0+#1.5E : +8.12753E+03 +%0+#1.10E : +8.1275341797E+03 +%0+#1.30E : +8.127534179687500000000000000000E+03 +%0+#2E : +8.127534E+03 +%0+#2.E : +8.E+03 +%0+#2.0E : +8.E+03 +%0+#2.1E : +8.1E+03 +%0+#2.2E : +8.13E+03 +%0+#2.5E : +8.12753E+03 +%0+#2.10E : +8.1275341797E+03 +%0+#2.30E : +8.127534179687500000000000000000E+03 +%0+#5E : +8.127534E+03 +%0+#5.E : +8.E+03 +%0+#5.0E : +8.E+03 +%0+#5.1E : +8.1E+03 +%0+#5.2E : +8.13E+03 +%0+#5.5E : +8.12753E+03 +%0+#5.10E : +8.1275341797E+03 +%0+#5.30E : +8.127534179687500000000000000000E+03 +%0+#10E : +8.127534E+03 +%0+#10.E : +0008.E+03 +%0+#10.0E : +0008.E+03 +%0+#10.1E : +008.1E+03 +%0+#10.2E : +08.13E+03 +%0+#10.5E : +8.12753E+03 +%0+#10.10E : +8.1275341797E+03 +%0+#10.30E : +8.127534179687500000000000000000E+03 +%0+#30E : +000000000000000008.127534E+03 +%0+#30.E : +000000000000000000000008.E+03 +%0+#30.0E : +000000000000000000000008.E+03 +%0+#30.1E : +00000000000000000000008.1E+03 +%0+#30.2E : +0000000000000000000008.13E+03 +%0+#30.5E : +0000000000000000008.12753E+03 +%0+#30.10E : +00000000000008.1275341797E+03 +%0+#30.30E : +8.127534179687500000000000000000E+03 +%#-+E : +8.127534E+03 +%#-+.E : +8.E+03 +%#-+.0E : +8.E+03 +%#-+.1E : +8.1E+03 +%#-+.2E : +8.13E+03 +%#-+.5E : +8.12753E+03 +%#-+.10E : +8.1275341797E+03 +%#-+.30E : +8.127534179687500000000000000000E+03 +%#-+1E : +8.127534E+03 +%#-+1.E : +8.E+03 +%#-+1.0E : +8.E+03 +%#-+1.1E : +8.1E+03 +%#-+1.2E : +8.13E+03 +%#-+1.5E : +8.12753E+03 +%#-+1.10E : +8.1275341797E+03 +%#-+1.30E : +8.127534179687500000000000000000E+03 +%#-+2E : +8.127534E+03 +%#-+2.E : +8.E+03 +%#-+2.0E : +8.E+03 +%#-+2.1E : +8.1E+03 +%#-+2.2E : +8.13E+03 +%#-+2.5E : +8.12753E+03 +%#-+2.10E : +8.1275341797E+03 +%#-+2.30E : +8.127534179687500000000000000000E+03 +%#-+5E : +8.127534E+03 +%#-+5.E : +8.E+03 +%#-+5.0E : +8.E+03 +%#-+5.1E : +8.1E+03 +%#-+5.2E : +8.13E+03 +%#-+5.5E : +8.12753E+03 +%#-+5.10E : +8.1275341797E+03 +%#-+5.30E : +8.127534179687500000000000000000E+03 +%#-+10E : +8.127534E+03 +%#-+10.E : +8.E+03 +%#-+10.0E : +8.E+03 +%#-+10.1E : +8.1E+03 +%#-+10.2E : +8.13E+03 +%#-+10.5E : +8.12753E+03 +%#-+10.10E : +8.1275341797E+03 +%#-+10.30E : +8.127534179687500000000000000000E+03 +%#-+30E : +8.127534E+03 +%#-+30.E : +8.E+03 +%#-+30.0E : +8.E+03 +%#-+30.1E : +8.1E+03 +%#-+30.2E : +8.13E+03 +%#-+30.5E : +8.12753E+03 +%#-+30.10E : +8.1275341797E+03 +%#-+30.30E : +8.127534179687500000000000000000E+03 +%+#-E : +8.127534E+03 +%+#-.E : +8.E+03 +%+#-.0E : +8.E+03 +%+#-.1E : +8.1E+03 +%+#-.2E : +8.13E+03 +%+#-.5E : +8.12753E+03 +%+#-.10E : +8.1275341797E+03 +%+#-.30E : +8.127534179687500000000000000000E+03 +%+#-1E : +8.127534E+03 +%+#-1.E : +8.E+03 +%+#-1.0E : +8.E+03 +%+#-1.1E : +8.1E+03 +%+#-1.2E : +8.13E+03 +%+#-1.5E : +8.12753E+03 +%+#-1.10E : +8.1275341797E+03 +%+#-1.30E : +8.127534179687500000000000000000E+03 +%+#-2E : +8.127534E+03 +%+#-2.E : +8.E+03 +%+#-2.0E : +8.E+03 +%+#-2.1E : +8.1E+03 +%+#-2.2E : +8.13E+03 +%+#-2.5E : +8.12753E+03 +%+#-2.10E : +8.1275341797E+03 +%+#-2.30E : +8.127534179687500000000000000000E+03 +%+#-5E : +8.127534E+03 +%+#-5.E : +8.E+03 +%+#-5.0E : +8.E+03 +%+#-5.1E : +8.1E+03 +%+#-5.2E : +8.13E+03 +%+#-5.5E : +8.12753E+03 +%+#-5.10E : +8.1275341797E+03 +%+#-5.30E : +8.127534179687500000000000000000E+03 +%+#-10E : +8.127534E+03 +%+#-10.E : +8.E+03 +%+#-10.0E : +8.E+03 +%+#-10.1E : +8.1E+03 +%+#-10.2E : +8.13E+03 +%+#-10.5E : +8.12753E+03 +%+#-10.10E : +8.1275341797E+03 +%+#-10.30E : +8.127534179687500000000000000000E+03 +%+#-30E : +8.127534E+03 +%+#-30.E : +8.E+03 +%+#-30.0E : +8.E+03 +%+#-30.1E : +8.1E+03 +%+#-30.2E : +8.13E+03 +%+#-30.5E : +8.12753E+03 +%+#-30.10E : +8.1275341797E+03 +%+#-30.30E : +8.127534179687500000000000000000E+03 +%+g : +8127.53 +%+.g : +8e+03 +%+.0g : +8e+03 +%+.1g : +8e+03 +%+.2g : +8.1e+03 +%+.5g : +8127.5 +%+.10g : +8127.53418 +%+.30g : +8127.5341796875 +%+0g : +8127.53 +%+0.g : +8e+03 +%+0.0g : +8e+03 +%+0.1g : +8e+03 +%+0.2g : +8.1e+03 +%+0.5g : +8127.5 +%+0.10g : +8127.53418 +%+0.30g : +8127.5341796875 +%+1g : +8127.53 +%+1.g : +8e+03 +%+1.0g : +8e+03 +%+1.1g : +8e+03 +%+1.2g : +8.1e+03 +%+1.5g : +8127.5 +%+1.10g : +8127.53418 +%+1.30g : +8127.5341796875 +%+2g : +8127.53 +%+2.g : +8e+03 +%+2.0g : +8e+03 +%+2.1g : +8e+03 +%+2.2g : +8.1e+03 +%+2.5g : +8127.5 +%+2.10g : +8127.53418 +%+2.30g : +8127.5341796875 +%+5g : +8127.53 +%+5.g : +8e+03 +%+5.0g : +8e+03 +%+5.1g : +8e+03 +%+5.2g : +8.1e+03 +%+5.5g : +8127.5 +%+5.10g : +8127.53418 +%+5.30g : +8127.5341796875 +%+10g : +8127.53 +%+10.g : +8e+03 +%+10.0g : +8e+03 +%+10.1g : +8e+03 +%+10.2g : +8.1e+03 +%+10.5g : +8127.5 +%+10.10g : +8127.53418 +%+10.30g : +8127.5341796875 +%+30g : +8127.53 +%+30.g : +8e+03 +%+30.0g : +8e+03 +%+30.1g : +8e+03 +%+30.2g : +8.1e+03 +%+30.5g : +8127.5 +%+30.10g : +8127.53418 +%+30.30g : +8127.5341796875 +%-g : 8127.53 +%-.g : 8e+03 +%-.0g : 8e+03 +%-.1g : 8e+03 +%-.2g : 8.1e+03 +%-.5g : 8127.5 +%-.10g : 8127.53418 +%-.30g : 8127.5341796875 +%-1g : 8127.53 +%-1.g : 8e+03 +%-1.0g : 8e+03 +%-1.1g : 8e+03 +%-1.2g : 8.1e+03 +%-1.5g : 8127.5 +%-1.10g : 8127.53418 +%-1.30g : 8127.5341796875 +%-2g : 8127.53 +%-2.g : 8e+03 +%-2.0g : 8e+03 +%-2.1g : 8e+03 +%-2.2g : 8.1e+03 +%-2.5g : 8127.5 +%-2.10g : 8127.53418 +%-2.30g : 8127.5341796875 +%-5g : 8127.53 +%-5.g : 8e+03 +%-5.0g : 8e+03 +%-5.1g : 8e+03 +%-5.2g : 8.1e+03 +%-5.5g : 8127.5 +%-5.10g : 8127.53418 +%-5.30g : 8127.5341796875 +%-10g : 8127.53 +%-10.g : 8e+03 +%-10.0g : 8e+03 +%-10.1g : 8e+03 +%-10.2g : 8.1e+03 +%-10.5g : 8127.5 +%-10.10g : 8127.53418 +%-10.30g : 8127.5341796875 +%-30g : 8127.53 +%-30.g : 8e+03 +%-30.0g : 8e+03 +%-30.1g : 8e+03 +%-30.2g : 8.1e+03 +%-30.5g : 8127.5 +%-30.10g : 8127.53418 +%-30.30g : 8127.5341796875 +%#g : 8127.53 +%#.g : 8.e+03 +%#.0g : 8.e+03 +%#.1g : 8.e+03 +%#.2g : 8.1e+03 +%#.5g : 8127.5 +%#.10g : 8127.534180 +%#.30g : 8127.53417968750000000000000000 +%#0g : 8127.53 +%#0.g : 8.e+03 +%#0.0g : 8.e+03 +%#0.1g : 8.e+03 +%#0.2g : 8.1e+03 +%#0.5g : 8127.5 +%#0.10g : 8127.534180 +%#0.30g : 8127.53417968750000000000000000 +%#1g : 8127.53 +%#1.g : 8.e+03 +%#1.0g : 8.e+03 +%#1.1g : 8.e+03 +%#1.2g : 8.1e+03 +%#1.5g : 8127.5 +%#1.10g : 8127.534180 +%#1.30g : 8127.53417968750000000000000000 +%#2g : 8127.53 +%#2.g : 8.e+03 +%#2.0g : 8.e+03 +%#2.1g : 8.e+03 +%#2.2g : 8.1e+03 +%#2.5g : 8127.5 +%#2.10g : 8127.534180 +%#2.30g : 8127.53417968750000000000000000 +%#5g : 8127.53 +%#5.g : 8.e+03 +%#5.0g : 8.e+03 +%#5.1g : 8.e+03 +%#5.2g : 8.1e+03 +%#5.5g : 8127.5 +%#5.10g : 8127.534180 +%#5.30g : 8127.53417968750000000000000000 +%#10g : 8127.53 +%#10.g : 8.e+03 +%#10.0g : 8.e+03 +%#10.1g : 8.e+03 +%#10.2g : 8.1e+03 +%#10.5g : 8127.5 +%#10.10g : 8127.534180 +%#10.30g : 8127.53417968750000000000000000 +%#30g : 8127.53 +%#30.g : 8.e+03 +%#30.0g : 8.e+03 +%#30.1g : 8.e+03 +%#30.2g : 8.1e+03 +%#30.5g : 8127.5 +%#30.10g : 8127.534180 +%#30.30g : 8127.53417968750000000000000000 +%0g : 8127.53 +%0.g : 8e+03 +%0.0g : 8e+03 +%0.1g : 8e+03 +%0.2g : 8.1e+03 +%0.5g : 8127.5 +%0.10g : 8127.53418 +%0.30g : 8127.5341796875 +%01g : 8127.53 +%01.g : 8e+03 +%01.0g : 8e+03 +%01.1g : 8e+03 +%01.2g : 8.1e+03 +%01.5g : 8127.5 +%01.10g : 8127.53418 +%01.30g : 8127.5341796875 +%02g : 8127.53 +%02.g : 8e+03 +%02.0g : 8e+03 +%02.1g : 8e+03 +%02.2g : 8.1e+03 +%02.5g : 8127.5 +%02.10g : 8127.53418 +%02.30g : 8127.5341796875 +%05g : 8127.53 +%05.g : 8e+03 +%05.0g : 8e+03 +%05.1g : 8e+03 +%05.2g : 8.1e+03 +%05.5g : 8127.5 +%05.10g : 8127.53418 +%05.30g : 8127.5341796875 +%010g : 0008127.53 +%010.g : 000008e+03 +%010.0g : 000008e+03 +%010.1g : 000008e+03 +%010.2g : 0008.1e+03 +%010.5g : 00008127.5 +%010.10g : 8127.53418 +%010.30g : 8127.5341796875 +%030g : 000000000000000000000008127.53 +%030.g : 00000000000000000000000008e+03 +%030.0g : 00000000000000000000000008e+03 +%030.1g : 00000000000000000000000008e+03 +%030.2g : 000000000000000000000008.1e+03 +%030.5g : 0000000000000000000000008127.5 +%030.10g : 000000000000000000008127.53418 +%030.30g : 0000000000000008127.5341796875 +%-+g : +8127.53 +%-+.g : +8e+03 +%-+.0g : +8e+03 +%-+.1g : +8e+03 +%-+.2g : +8.1e+03 +%-+.5g : +8127.5 +%-+.10g : +8127.53418 +%-+.30g : +8127.5341796875 +%-+1g : +8127.53 +%-+1.g : +8e+03 +%-+1.0g : +8e+03 +%-+1.1g : +8e+03 +%-+1.2g : +8.1e+03 +%-+1.5g : +8127.5 +%-+1.10g : +8127.53418 +%-+1.30g : +8127.5341796875 +%-+2g : +8127.53 +%-+2.g : +8e+03 +%-+2.0g : +8e+03 +%-+2.1g : +8e+03 +%-+2.2g : +8.1e+03 +%-+2.5g : +8127.5 +%-+2.10g : +8127.53418 +%-+2.30g : +8127.5341796875 +%-+5g : +8127.53 +%-+5.g : +8e+03 +%-+5.0g : +8e+03 +%-+5.1g : +8e+03 +%-+5.2g : +8.1e+03 +%-+5.5g : +8127.5 +%-+5.10g : +8127.53418 +%-+5.30g : +8127.5341796875 +%-+10g : +8127.53 +%-+10.g : +8e+03 +%-+10.0g : +8e+03 +%-+10.1g : +8e+03 +%-+10.2g : +8.1e+03 +%-+10.5g : +8127.5 +%-+10.10g : +8127.53418 +%-+10.30g : +8127.5341796875 +%-+30g : +8127.53 +%-+30.g : +8e+03 +%-+30.0g : +8e+03 +%-+30.1g : +8e+03 +%-+30.2g : +8.1e+03 +%-+30.5g : +8127.5 +%-+30.10g : +8127.53418 +%-+30.30g : +8127.5341796875 +%#+g : +8127.53 +%#+.g : +8.e+03 +%#+.0g : +8.e+03 +%#+.1g : +8.e+03 +%#+.2g : +8.1e+03 +%#+.5g : +8127.5 +%#+.10g : +8127.534180 +%#+.30g : +8127.53417968750000000000000000 +%#+0g : +8127.53 +%#+0.g : +8.e+03 +%#+0.0g : +8.e+03 +%#+0.1g : +8.e+03 +%#+0.2g : +8.1e+03 +%#+0.5g : +8127.5 +%#+0.10g : +8127.534180 +%#+0.30g : +8127.53417968750000000000000000 +%#+1g : +8127.53 +%#+1.g : +8.e+03 +%#+1.0g : +8.e+03 +%#+1.1g : +8.e+03 +%#+1.2g : +8.1e+03 +%#+1.5g : +8127.5 +%#+1.10g : +8127.534180 +%#+1.30g : +8127.53417968750000000000000000 +%#+2g : +8127.53 +%#+2.g : +8.e+03 +%#+2.0g : +8.e+03 +%#+2.1g : +8.e+03 +%#+2.2g : +8.1e+03 +%#+2.5g : +8127.5 +%#+2.10g : +8127.534180 +%#+2.30g : +8127.53417968750000000000000000 +%#+5g : +8127.53 +%#+5.g : +8.e+03 +%#+5.0g : +8.e+03 +%#+5.1g : +8.e+03 +%#+5.2g : +8.1e+03 +%#+5.5g : +8127.5 +%#+5.10g : +8127.534180 +%#+5.30g : +8127.53417968750000000000000000 +%#+10g : +8127.53 +%#+10.g : +8.e+03 +%#+10.0g : +8.e+03 +%#+10.1g : +8.e+03 +%#+10.2g : +8.1e+03 +%#+10.5g : +8127.5 +%#+10.10g : +8127.534180 +%#+10.30g : +8127.53417968750000000000000000 +%#+30g : +8127.53 +%#+30.g : +8.e+03 +%#+30.0g : +8.e+03 +%#+30.1g : +8.e+03 +%#+30.2g : +8.1e+03 +%#+30.5g : +8127.5 +%#+30.10g : +8127.534180 +%#+30.30g : +8127.53417968750000000000000000 +%+0g : +8127.53 +%+0.g : +8e+03 +%+0.0g : +8e+03 +%+0.1g : +8e+03 +%+0.2g : +8.1e+03 +%+0.5g : +8127.5 +%+0.10g : +8127.53418 +%+0.30g : +8127.5341796875 +%+01g : +8127.53 +%+01.g : +8e+03 +%+01.0g : +8e+03 +%+01.1g : +8e+03 +%+01.2g : +8.1e+03 +%+01.5g : +8127.5 +%+01.10g : +8127.53418 +%+01.30g : +8127.5341796875 +%+02g : +8127.53 +%+02.g : +8e+03 +%+02.0g : +8e+03 +%+02.1g : +8e+03 +%+02.2g : +8.1e+03 +%+02.5g : +8127.5 +%+02.10g : +8127.53418 +%+02.30g : +8127.5341796875 +%+05g : +8127.53 +%+05.g : +8e+03 +%+05.0g : +8e+03 +%+05.1g : +8e+03 +%+05.2g : +8.1e+03 +%+05.5g : +8127.5 +%+05.10g : +8127.53418 +%+05.30g : +8127.5341796875 +%+010g : +008127.53 +%+010.g : +00008e+03 +%+010.0g : +00008e+03 +%+010.1g : +00008e+03 +%+010.2g : +008.1e+03 +%+010.5g : +0008127.5 +%+010.10g : +8127.53418 +%+010.30g : +8127.5341796875 +%+030g : +00000000000000000000008127.53 +%+030.g : +0000000000000000000000008e+03 +%+030.0g : +0000000000000000000000008e+03 +%+030.1g : +0000000000000000000000008e+03 +%+030.2g : +00000000000000000000008.1e+03 +%+030.5g : +000000000000000000000008127.5 +%+030.10g : +00000000000000000008127.53418 +%+030.30g : +000000000000008127.5341796875 +%+-g : +8127.53 +%+-.g : +8e+03 +%+-.0g : +8e+03 +%+-.1g : +8e+03 +%+-.2g : +8.1e+03 +%+-.5g : +8127.5 +%+-.10g : +8127.53418 +%+-.30g : +8127.5341796875 +%+-1g : +8127.53 +%+-1.g : +8e+03 +%+-1.0g : +8e+03 +%+-1.1g : +8e+03 +%+-1.2g : +8.1e+03 +%+-1.5g : +8127.5 +%+-1.10g : +8127.53418 +%+-1.30g : +8127.5341796875 +%+-2g : +8127.53 +%+-2.g : +8e+03 +%+-2.0g : +8e+03 +%+-2.1g : +8e+03 +%+-2.2g : +8.1e+03 +%+-2.5g : +8127.5 +%+-2.10g : +8127.53418 +%+-2.30g : +8127.5341796875 +%+-5g : +8127.53 +%+-5.g : +8e+03 +%+-5.0g : +8e+03 +%+-5.1g : +8e+03 +%+-5.2g : +8.1e+03 +%+-5.5g : +8127.5 +%+-5.10g : +8127.53418 +%+-5.30g : +8127.5341796875 +%+-10g : +8127.53 +%+-10.g : +8e+03 +%+-10.0g : +8e+03 +%+-10.1g : +8e+03 +%+-10.2g : +8.1e+03 +%+-10.5g : +8127.5 +%+-10.10g : +8127.53418 +%+-10.30g : +8127.5341796875 +%+-30g : +8127.53 +%+-30.g : +8e+03 +%+-30.0g : +8e+03 +%+-30.1g : +8e+03 +%+-30.2g : +8.1e+03 +%+-30.5g : +8127.5 +%+-30.10g : +8127.53418 +%+-30.30g : +8127.5341796875 +%#-g : 8127.53 +%#-.g : 8.e+03 +%#-.0g : 8.e+03 +%#-.1g : 8.e+03 +%#-.2g : 8.1e+03 +%#-.5g : 8127.5 +%#-.10g : 8127.534180 +%#-.30g : 8127.53417968750000000000000000 +%#-1g : 8127.53 +%#-1.g : 8.e+03 +%#-1.0g : 8.e+03 +%#-1.1g : 8.e+03 +%#-1.2g : 8.1e+03 +%#-1.5g : 8127.5 +%#-1.10g : 8127.534180 +%#-1.30g : 8127.53417968750000000000000000 +%#-2g : 8127.53 +%#-2.g : 8.e+03 +%#-2.0g : 8.e+03 +%#-2.1g : 8.e+03 +%#-2.2g : 8.1e+03 +%#-2.5g : 8127.5 +%#-2.10g : 8127.534180 +%#-2.30g : 8127.53417968750000000000000000 +%#-5g : 8127.53 +%#-5.g : 8.e+03 +%#-5.0g : 8.e+03 +%#-5.1g : 8.e+03 +%#-5.2g : 8.1e+03 +%#-5.5g : 8127.5 +%#-5.10g : 8127.534180 +%#-5.30g : 8127.53417968750000000000000000 +%#-10g : 8127.53 +%#-10.g : 8.e+03 +%#-10.0g : 8.e+03 +%#-10.1g : 8.e+03 +%#-10.2g : 8.1e+03 +%#-10.5g : 8127.5 +%#-10.10g : 8127.534180 +%#-10.30g : 8127.53417968750000000000000000 +%#-30g : 8127.53 +%#-30.g : 8.e+03 +%#-30.0g : 8.e+03 +%#-30.1g : 8.e+03 +%#-30.2g : 8.1e+03 +%#-30.5g : 8127.5 +%#-30.10g : 8127.534180 +%#-30.30g : 8127.53417968750000000000000000 +%+#g : +8127.53 +%+#.g : +8.e+03 +%+#.0g : +8.e+03 +%+#.1g : +8.e+03 +%+#.2g : +8.1e+03 +%+#.5g : +8127.5 +%+#.10g : +8127.534180 +%+#.30g : +8127.53417968750000000000000000 +%+#0g : +8127.53 +%+#0.g : +8.e+03 +%+#0.0g : +8.e+03 +%+#0.1g : +8.e+03 +%+#0.2g : +8.1e+03 +%+#0.5g : +8127.5 +%+#0.10g : +8127.534180 +%+#0.30g : +8127.53417968750000000000000000 +%+#1g : +8127.53 +%+#1.g : +8.e+03 +%+#1.0g : +8.e+03 +%+#1.1g : +8.e+03 +%+#1.2g : +8.1e+03 +%+#1.5g : +8127.5 +%+#1.10g : +8127.534180 +%+#1.30g : +8127.53417968750000000000000000 +%+#2g : +8127.53 +%+#2.g : +8.e+03 +%+#2.0g : +8.e+03 +%+#2.1g : +8.e+03 +%+#2.2g : +8.1e+03 +%+#2.5g : +8127.5 +%+#2.10g : +8127.534180 +%+#2.30g : +8127.53417968750000000000000000 +%+#5g : +8127.53 +%+#5.g : +8.e+03 +%+#5.0g : +8.e+03 +%+#5.1g : +8.e+03 +%+#5.2g : +8.1e+03 +%+#5.5g : +8127.5 +%+#5.10g : +8127.534180 +%+#5.30g : +8127.53417968750000000000000000 +%+#10g : +8127.53 +%+#10.g : +8.e+03 +%+#10.0g : +8.e+03 +%+#10.1g : +8.e+03 +%+#10.2g : +8.1e+03 +%+#10.5g : +8127.5 +%+#10.10g : +8127.534180 +%+#10.30g : +8127.53417968750000000000000000 +%+#30g : +8127.53 +%+#30.g : +8.e+03 +%+#30.0g : +8.e+03 +%+#30.1g : +8.e+03 +%+#30.2g : +8.1e+03 +%+#30.5g : +8127.5 +%+#30.10g : +8127.534180 +%+#30.30g : +8127.53417968750000000000000000 +%-#g : 8127.53 +%-#.g : 8.e+03 +%-#.0g : 8.e+03 +%-#.1g : 8.e+03 +%-#.2g : 8.1e+03 +%-#.5g : 8127.5 +%-#.10g : 8127.534180 +%-#.30g : 8127.53417968750000000000000000 +%-#1g : 8127.53 +%-#1.g : 8.e+03 +%-#1.0g : 8.e+03 +%-#1.1g : 8.e+03 +%-#1.2g : 8.1e+03 +%-#1.5g : 8127.5 +%-#1.10g : 8127.534180 +%-#1.30g : 8127.53417968750000000000000000 +%-#2g : 8127.53 +%-#2.g : 8.e+03 +%-#2.0g : 8.e+03 +%-#2.1g : 8.e+03 +%-#2.2g : 8.1e+03 +%-#2.5g : 8127.5 +%-#2.10g : 8127.534180 +%-#2.30g : 8127.53417968750000000000000000 +%-#5g : 8127.53 +%-#5.g : 8.e+03 +%-#5.0g : 8.e+03 +%-#5.1g : 8.e+03 +%-#5.2g : 8.1e+03 +%-#5.5g : 8127.5 +%-#5.10g : 8127.534180 +%-#5.30g : 8127.53417968750000000000000000 +%-#10g : 8127.53 +%-#10.g : 8.e+03 +%-#10.0g : 8.e+03 +%-#10.1g : 8.e+03 +%-#10.2g : 8.1e+03 +%-#10.5g : 8127.5 +%-#10.10g : 8127.534180 +%-#10.30g : 8127.53417968750000000000000000 +%-#30g : 8127.53 +%-#30.g : 8.e+03 +%-#30.0g : 8.e+03 +%-#30.1g : 8.e+03 +%-#30.2g : 8.1e+03 +%-#30.5g : 8127.5 +%-#30.10g : 8127.534180 +%-#30.30g : 8127.53417968750000000000000000 +%0#g : 8127.53 +%0#.g : 8.e+03 +%0#.0g : 8.e+03 +%0#.1g : 8.e+03 +%0#.2g : 8.1e+03 +%0#.5g : 8127.5 +%0#.10g : 8127.534180 +%0#.30g : 8127.53417968750000000000000000 +%0#1g : 8127.53 +%0#1.g : 8.e+03 +%0#1.0g : 8.e+03 +%0#1.1g : 8.e+03 +%0#1.2g : 8.1e+03 +%0#1.5g : 8127.5 +%0#1.10g : 8127.534180 +%0#1.30g : 8127.53417968750000000000000000 +%0#2g : 8127.53 +%0#2.g : 8.e+03 +%0#2.0g : 8.e+03 +%0#2.1g : 8.e+03 +%0#2.2g : 8.1e+03 +%0#2.5g : 8127.5 +%0#2.10g : 8127.534180 +%0#2.30g : 8127.53417968750000000000000000 +%0#5g : 8127.53 +%0#5.g : 8.e+03 +%0#5.0g : 8.e+03 +%0#5.1g : 8.e+03 +%0#5.2g : 8.1e+03 +%0#5.5g : 8127.5 +%0#5.10g : 8127.534180 +%0#5.30g : 8127.53417968750000000000000000 +%0#10g : 0008127.53 +%0#10.g : 00008.e+03 +%0#10.0g : 00008.e+03 +%0#10.1g : 00008.e+03 +%0#10.2g : 0008.1e+03 +%0#10.5g : 00008127.5 +%0#10.10g : 8127.534180 +%0#10.30g : 8127.53417968750000000000000000 +%0#30g : 000000000000000000000008127.53 +%0#30.g : 0000000000000000000000008.e+03 +%0#30.0g : 0000000000000000000000008.e+03 +%0#30.1g : 0000000000000000000000008.e+03 +%0#30.2g : 000000000000000000000008.1e+03 +%0#30.5g : 0000000000000000000000008127.5 +%0#30.10g : 00000000000000000008127.534180 +%0#30.30g : 8127.53417968750000000000000000 +%+0g : +8127.53 +%+0.g : +8e+03 +%+0.0g : +8e+03 +%+0.1g : +8e+03 +%+0.2g : +8.1e+03 +%+0.5g : +8127.5 +%+0.10g : +8127.53418 +%+0.30g : +8127.5341796875 +%+01g : +8127.53 +%+01.g : +8e+03 +%+01.0g : +8e+03 +%+01.1g : +8e+03 +%+01.2g : +8.1e+03 +%+01.5g : +8127.5 +%+01.10g : +8127.53418 +%+01.30g : +8127.5341796875 +%+02g : +8127.53 +%+02.g : +8e+03 +%+02.0g : +8e+03 +%+02.1g : +8e+03 +%+02.2g : +8.1e+03 +%+02.5g : +8127.5 +%+02.10g : +8127.53418 +%+02.30g : +8127.5341796875 +%+05g : +8127.53 +%+05.g : +8e+03 +%+05.0g : +8e+03 +%+05.1g : +8e+03 +%+05.2g : +8.1e+03 +%+05.5g : +8127.5 +%+05.10g : +8127.53418 +%+05.30g : +8127.5341796875 +%+010g : +008127.53 +%+010.g : +00008e+03 +%+010.0g : +00008e+03 +%+010.1g : +00008e+03 +%+010.2g : +008.1e+03 +%+010.5g : +0008127.5 +%+010.10g : +8127.53418 +%+010.30g : +8127.5341796875 +%+030g : +00000000000000000000008127.53 +%+030.g : +0000000000000000000000008e+03 +%+030.0g : +0000000000000000000000008e+03 +%+030.1g : +0000000000000000000000008e+03 +%+030.2g : +00000000000000000000008.1e+03 +%+030.5g : +000000000000000000000008127.5 +%+030.10g : +00000000000000000008127.53418 +%+030.30g : +000000000000008127.5341796875 +%#0g : 8127.53 +%#0.g : 8.e+03 +%#0.0g : 8.e+03 +%#0.1g : 8.e+03 +%#0.2g : 8.1e+03 +%#0.5g : 8127.5 +%#0.10g : 8127.534180 +%#0.30g : 8127.53417968750000000000000000 +%#01g : 8127.53 +%#01.g : 8.e+03 +%#01.0g : 8.e+03 +%#01.1g : 8.e+03 +%#01.2g : 8.1e+03 +%#01.5g : 8127.5 +%#01.10g : 8127.534180 +%#01.30g : 8127.53417968750000000000000000 +%#02g : 8127.53 +%#02.g : 8.e+03 +%#02.0g : 8.e+03 +%#02.1g : 8.e+03 +%#02.2g : 8.1e+03 +%#02.5g : 8127.5 +%#02.10g : 8127.534180 +%#02.30g : 8127.53417968750000000000000000 +%#05g : 8127.53 +%#05.g : 8.e+03 +%#05.0g : 8.e+03 +%#05.1g : 8.e+03 +%#05.2g : 8.1e+03 +%#05.5g : 8127.5 +%#05.10g : 8127.534180 +%#05.30g : 8127.53417968750000000000000000 +%#010g : 0008127.53 +%#010.g : 00008.e+03 +%#010.0g : 00008.e+03 +%#010.1g : 00008.e+03 +%#010.2g : 0008.1e+03 +%#010.5g : 00008127.5 +%#010.10g : 8127.534180 +%#010.30g : 8127.53417968750000000000000000 +%#030g : 000000000000000000000008127.53 +%#030.g : 0000000000000000000000008.e+03 +%#030.0g : 0000000000000000000000008.e+03 +%#030.1g : 0000000000000000000000008.e+03 +%#030.2g : 000000000000000000000008.1e+03 +%#030.5g : 0000000000000000000000008127.5 +%#030.10g : 00000000000000000008127.534180 +%#030.30g : 8127.53417968750000000000000000 +%-+#g : +8127.53 +%-+#.g : +8.e+03 +%-+#.0g : +8.e+03 +%-+#.1g : +8.e+03 +%-+#.2g : +8.1e+03 +%-+#.5g : +8127.5 +%-+#.10g : +8127.534180 +%-+#.30g : +8127.53417968750000000000000000 +%-+#1g : +8127.53 +%-+#1.g : +8.e+03 +%-+#1.0g : +8.e+03 +%-+#1.1g : +8.e+03 +%-+#1.2g : +8.1e+03 +%-+#1.5g : +8127.5 +%-+#1.10g : +8127.534180 +%-+#1.30g : +8127.53417968750000000000000000 +%-+#2g : +8127.53 +%-+#2.g : +8.e+03 +%-+#2.0g : +8.e+03 +%-+#2.1g : +8.e+03 +%-+#2.2g : +8.1e+03 +%-+#2.5g : +8127.5 +%-+#2.10g : +8127.534180 +%-+#2.30g : +8127.53417968750000000000000000 +%-+#5g : +8127.53 +%-+#5.g : +8.e+03 +%-+#5.0g : +8.e+03 +%-+#5.1g : +8.e+03 +%-+#5.2g : +8.1e+03 +%-+#5.5g : +8127.5 +%-+#5.10g : +8127.534180 +%-+#5.30g : +8127.53417968750000000000000000 +%-+#10g : +8127.53 +%-+#10.g : +8.e+03 +%-+#10.0g : +8.e+03 +%-+#10.1g : +8.e+03 +%-+#10.2g : +8.1e+03 +%-+#10.5g : +8127.5 +%-+#10.10g : +8127.534180 +%-+#10.30g : +8127.53417968750000000000000000 +%-+#30g : +8127.53 +%-+#30.g : +8.e+03 +%-+#30.0g : +8.e+03 +%-+#30.1g : +8.e+03 +%-+#30.2g : +8.1e+03 +%-+#30.5g : +8127.5 +%-+#30.10g : +8127.534180 +%-+#30.30g : +8127.53417968750000000000000000 +%0+#g : +8127.53 +%0+#.g : +8.e+03 +%0+#.0g : +8.e+03 +%0+#.1g : +8.e+03 +%0+#.2g : +8.1e+03 +%0+#.5g : +8127.5 +%0+#.10g : +8127.534180 +%0+#.30g : +8127.53417968750000000000000000 +%0+#1g : +8127.53 +%0+#1.g : +8.e+03 +%0+#1.0g : +8.e+03 +%0+#1.1g : +8.e+03 +%0+#1.2g : +8.1e+03 +%0+#1.5g : +8127.5 +%0+#1.10g : +8127.534180 +%0+#1.30g : +8127.53417968750000000000000000 +%0+#2g : +8127.53 +%0+#2.g : +8.e+03 +%0+#2.0g : +8.e+03 +%0+#2.1g : +8.e+03 +%0+#2.2g : +8.1e+03 +%0+#2.5g : +8127.5 +%0+#2.10g : +8127.534180 +%0+#2.30g : +8127.53417968750000000000000000 +%0+#5g : +8127.53 +%0+#5.g : +8.e+03 +%0+#5.0g : +8.e+03 +%0+#5.1g : +8.e+03 +%0+#5.2g : +8.1e+03 +%0+#5.5g : +8127.5 +%0+#5.10g : +8127.534180 +%0+#5.30g : +8127.53417968750000000000000000 +%0+#10g : +008127.53 +%0+#10.g : +0008.e+03 +%0+#10.0g : +0008.e+03 +%0+#10.1g : +0008.e+03 +%0+#10.2g : +008.1e+03 +%0+#10.5g : +0008127.5 +%0+#10.10g : +8127.534180 +%0+#10.30g : +8127.53417968750000000000000000 +%0+#30g : +00000000000000000000008127.53 +%0+#30.g : +000000000000000000000008.e+03 +%0+#30.0g : +000000000000000000000008.e+03 +%0+#30.1g : +000000000000000000000008.e+03 +%0+#30.2g : +00000000000000000000008.1e+03 +%0+#30.5g : +000000000000000000000008127.5 +%0+#30.10g : +0000000000000000008127.534180 +%0+#30.30g : +8127.53417968750000000000000000 +%#-+g : +8127.53 +%#-+.g : +8.e+03 +%#-+.0g : +8.e+03 +%#-+.1g : +8.e+03 +%#-+.2g : +8.1e+03 +%#-+.5g : +8127.5 +%#-+.10g : +8127.534180 +%#-+.30g : +8127.53417968750000000000000000 +%#-+1g : +8127.53 +%#-+1.g : +8.e+03 +%#-+1.0g : +8.e+03 +%#-+1.1g : +8.e+03 +%#-+1.2g : +8.1e+03 +%#-+1.5g : +8127.5 +%#-+1.10g : +8127.534180 +%#-+1.30g : +8127.53417968750000000000000000 +%#-+2g : +8127.53 +%#-+2.g : +8.e+03 +%#-+2.0g : +8.e+03 +%#-+2.1g : +8.e+03 +%#-+2.2g : +8.1e+03 +%#-+2.5g : +8127.5 +%#-+2.10g : +8127.534180 +%#-+2.30g : +8127.53417968750000000000000000 +%#-+5g : +8127.53 +%#-+5.g : +8.e+03 +%#-+5.0g : +8.e+03 +%#-+5.1g : +8.e+03 +%#-+5.2g : +8.1e+03 +%#-+5.5g : +8127.5 +%#-+5.10g : +8127.534180 +%#-+5.30g : +8127.53417968750000000000000000 +%#-+10g : +8127.53 +%#-+10.g : +8.e+03 +%#-+10.0g : +8.e+03 +%#-+10.1g : +8.e+03 +%#-+10.2g : +8.1e+03 +%#-+10.5g : +8127.5 +%#-+10.10g : +8127.534180 +%#-+10.30g : +8127.53417968750000000000000000 +%#-+30g : +8127.53 +%#-+30.g : +8.e+03 +%#-+30.0g : +8.e+03 +%#-+30.1g : +8.e+03 +%#-+30.2g : +8.1e+03 +%#-+30.5g : +8127.5 +%#-+30.10g : +8127.534180 +%#-+30.30g : +8127.53417968750000000000000000 +%+#-g : +8127.53 +%+#-.g : +8.e+03 +%+#-.0g : +8.e+03 +%+#-.1g : +8.e+03 +%+#-.2g : +8.1e+03 +%+#-.5g : +8127.5 +%+#-.10g : +8127.534180 +%+#-.30g : +8127.53417968750000000000000000 +%+#-1g : +8127.53 +%+#-1.g : +8.e+03 +%+#-1.0g : +8.e+03 +%+#-1.1g : +8.e+03 +%+#-1.2g : +8.1e+03 +%+#-1.5g : +8127.5 +%+#-1.10g : +8127.534180 +%+#-1.30g : +8127.53417968750000000000000000 +%+#-2g : +8127.53 +%+#-2.g : +8.e+03 +%+#-2.0g : +8.e+03 +%+#-2.1g : +8.e+03 +%+#-2.2g : +8.1e+03 +%+#-2.5g : +8127.5 +%+#-2.10g : +8127.534180 +%+#-2.30g : +8127.53417968750000000000000000 +%+#-5g : +8127.53 +%+#-5.g : +8.e+03 +%+#-5.0g : +8.e+03 +%+#-5.1g : +8.e+03 +%+#-5.2g : +8.1e+03 +%+#-5.5g : +8127.5 +%+#-5.10g : +8127.534180 +%+#-5.30g : +8127.53417968750000000000000000 +%+#-10g : +8127.53 +%+#-10.g : +8.e+03 +%+#-10.0g : +8.e+03 +%+#-10.1g : +8.e+03 +%+#-10.2g : +8.1e+03 +%+#-10.5g : +8127.5 +%+#-10.10g : +8127.534180 +%+#-10.30g : +8127.53417968750000000000000000 +%+#-30g : +8127.53 +%+#-30.g : +8.e+03 +%+#-30.0g : +8.e+03 +%+#-30.1g : +8.e+03 +%+#-30.2g : +8.1e+03 +%+#-30.5g : +8127.5 +%+#-30.10g : +8127.534180 +%+#-30.30g : +8127.53417968750000000000000000 +%+G : +8127.53 +%+.G : +8E+03 +%+.0G : +8E+03 +%+.1G : +8E+03 +%+.2G : +8.1E+03 +%+.5G : +8127.5 +%+.10G : +8127.53418 +%+.30G : +8127.5341796875 +%+0G : +8127.53 +%+0.G : +8E+03 +%+0.0G : +8E+03 +%+0.1G : +8E+03 +%+0.2G : +8.1E+03 +%+0.5G : +8127.5 +%+0.10G : +8127.53418 +%+0.30G : +8127.5341796875 +%+1G : +8127.53 +%+1.G : +8E+03 +%+1.0G : +8E+03 +%+1.1G : +8E+03 +%+1.2G : +8.1E+03 +%+1.5G : +8127.5 +%+1.10G : +8127.53418 +%+1.30G : +8127.5341796875 +%+2G : +8127.53 +%+2.G : +8E+03 +%+2.0G : +8E+03 +%+2.1G : +8E+03 +%+2.2G : +8.1E+03 +%+2.5G : +8127.5 +%+2.10G : +8127.53418 +%+2.30G : +8127.5341796875 +%+5G : +8127.53 +%+5.G : +8E+03 +%+5.0G : +8E+03 +%+5.1G : +8E+03 +%+5.2G : +8.1E+03 +%+5.5G : +8127.5 +%+5.10G : +8127.53418 +%+5.30G : +8127.5341796875 +%+10G : +8127.53 +%+10.G : +8E+03 +%+10.0G : +8E+03 +%+10.1G : +8E+03 +%+10.2G : +8.1E+03 +%+10.5G : +8127.5 +%+10.10G : +8127.53418 +%+10.30G : +8127.5341796875 +%+30G : +8127.53 +%+30.G : +8E+03 +%+30.0G : +8E+03 +%+30.1G : +8E+03 +%+30.2G : +8.1E+03 +%+30.5G : +8127.5 +%+30.10G : +8127.53418 +%+30.30G : +8127.5341796875 +%-G : 8127.53 +%-.G : 8E+03 +%-.0G : 8E+03 +%-.1G : 8E+03 +%-.2G : 8.1E+03 +%-.5G : 8127.5 +%-.10G : 8127.53418 +%-.30G : 8127.5341796875 +%-1G : 8127.53 +%-1.G : 8E+03 +%-1.0G : 8E+03 +%-1.1G : 8E+03 +%-1.2G : 8.1E+03 +%-1.5G : 8127.5 +%-1.10G : 8127.53418 +%-1.30G : 8127.5341796875 +%-2G : 8127.53 +%-2.G : 8E+03 +%-2.0G : 8E+03 +%-2.1G : 8E+03 +%-2.2G : 8.1E+03 +%-2.5G : 8127.5 +%-2.10G : 8127.53418 +%-2.30G : 8127.5341796875 +%-5G : 8127.53 +%-5.G : 8E+03 +%-5.0G : 8E+03 +%-5.1G : 8E+03 +%-5.2G : 8.1E+03 +%-5.5G : 8127.5 +%-5.10G : 8127.53418 +%-5.30G : 8127.5341796875 +%-10G : 8127.53 +%-10.G : 8E+03 +%-10.0G : 8E+03 +%-10.1G : 8E+03 +%-10.2G : 8.1E+03 +%-10.5G : 8127.5 +%-10.10G : 8127.53418 +%-10.30G : 8127.5341796875 +%-30G : 8127.53 +%-30.G : 8E+03 +%-30.0G : 8E+03 +%-30.1G : 8E+03 +%-30.2G : 8.1E+03 +%-30.5G : 8127.5 +%-30.10G : 8127.53418 +%-30.30G : 8127.5341796875 +%#G : 8127.53 +%#.G : 8.E+03 +%#.0G : 8.E+03 +%#.1G : 8.E+03 +%#.2G : 8.1E+03 +%#.5G : 8127.5 +%#.10G : 8127.534180 +%#.30G : 8127.53417968750000000000000000 +%#0G : 8127.53 +%#0.G : 8.E+03 +%#0.0G : 8.E+03 +%#0.1G : 8.E+03 +%#0.2G : 8.1E+03 +%#0.5G : 8127.5 +%#0.10G : 8127.534180 +%#0.30G : 8127.53417968750000000000000000 +%#1G : 8127.53 +%#1.G : 8.E+03 +%#1.0G : 8.E+03 +%#1.1G : 8.E+03 +%#1.2G : 8.1E+03 +%#1.5G : 8127.5 +%#1.10G : 8127.534180 +%#1.30G : 8127.53417968750000000000000000 +%#2G : 8127.53 +%#2.G : 8.E+03 +%#2.0G : 8.E+03 +%#2.1G : 8.E+03 +%#2.2G : 8.1E+03 +%#2.5G : 8127.5 +%#2.10G : 8127.534180 +%#2.30G : 8127.53417968750000000000000000 +%#5G : 8127.53 +%#5.G : 8.E+03 +%#5.0G : 8.E+03 +%#5.1G : 8.E+03 +%#5.2G : 8.1E+03 +%#5.5G : 8127.5 +%#5.10G : 8127.534180 +%#5.30G : 8127.53417968750000000000000000 +%#10G : 8127.53 +%#10.G : 8.E+03 +%#10.0G : 8.E+03 +%#10.1G : 8.E+03 +%#10.2G : 8.1E+03 +%#10.5G : 8127.5 +%#10.10G : 8127.534180 +%#10.30G : 8127.53417968750000000000000000 +%#30G : 8127.53 +%#30.G : 8.E+03 +%#30.0G : 8.E+03 +%#30.1G : 8.E+03 +%#30.2G : 8.1E+03 +%#30.5G : 8127.5 +%#30.10G : 8127.534180 +%#30.30G : 8127.53417968750000000000000000 +%0G : 8127.53 +%0.G : 8E+03 +%0.0G : 8E+03 +%0.1G : 8E+03 +%0.2G : 8.1E+03 +%0.5G : 8127.5 +%0.10G : 8127.53418 +%0.30G : 8127.5341796875 +%01G : 8127.53 +%01.G : 8E+03 +%01.0G : 8E+03 +%01.1G : 8E+03 +%01.2G : 8.1E+03 +%01.5G : 8127.5 +%01.10G : 8127.53418 +%01.30G : 8127.5341796875 +%02G : 8127.53 +%02.G : 8E+03 +%02.0G : 8E+03 +%02.1G : 8E+03 +%02.2G : 8.1E+03 +%02.5G : 8127.5 +%02.10G : 8127.53418 +%02.30G : 8127.5341796875 +%05G : 8127.53 +%05.G : 8E+03 +%05.0G : 8E+03 +%05.1G : 8E+03 +%05.2G : 8.1E+03 +%05.5G : 8127.5 +%05.10G : 8127.53418 +%05.30G : 8127.5341796875 +%010G : 0008127.53 +%010.G : 000008E+03 +%010.0G : 000008E+03 +%010.1G : 000008E+03 +%010.2G : 0008.1E+03 +%010.5G : 00008127.5 +%010.10G : 8127.53418 +%010.30G : 8127.5341796875 +%030G : 000000000000000000000008127.53 +%030.G : 00000000000000000000000008E+03 +%030.0G : 00000000000000000000000008E+03 +%030.1G : 00000000000000000000000008E+03 +%030.2G : 000000000000000000000008.1E+03 +%030.5G : 0000000000000000000000008127.5 +%030.10G : 000000000000000000008127.53418 +%030.30G : 0000000000000008127.5341796875 +%-+G : +8127.53 +%-+.G : +8E+03 +%-+.0G : +8E+03 +%-+.1G : +8E+03 +%-+.2G : +8.1E+03 +%-+.5G : +8127.5 +%-+.10G : +8127.53418 +%-+.30G : +8127.5341796875 +%-+1G : +8127.53 +%-+1.G : +8E+03 +%-+1.0G : +8E+03 +%-+1.1G : +8E+03 +%-+1.2G : +8.1E+03 +%-+1.5G : +8127.5 +%-+1.10G : +8127.53418 +%-+1.30G : +8127.5341796875 +%-+2G : +8127.53 +%-+2.G : +8E+03 +%-+2.0G : +8E+03 +%-+2.1G : +8E+03 +%-+2.2G : +8.1E+03 +%-+2.5G : +8127.5 +%-+2.10G : +8127.53418 +%-+2.30G : +8127.5341796875 +%-+5G : +8127.53 +%-+5.G : +8E+03 +%-+5.0G : +8E+03 +%-+5.1G : +8E+03 +%-+5.2G : +8.1E+03 +%-+5.5G : +8127.5 +%-+5.10G : +8127.53418 +%-+5.30G : +8127.5341796875 +%-+10G : +8127.53 +%-+10.G : +8E+03 +%-+10.0G : +8E+03 +%-+10.1G : +8E+03 +%-+10.2G : +8.1E+03 +%-+10.5G : +8127.5 +%-+10.10G : +8127.53418 +%-+10.30G : +8127.5341796875 +%-+30G : +8127.53 +%-+30.G : +8E+03 +%-+30.0G : +8E+03 +%-+30.1G : +8E+03 +%-+30.2G : +8.1E+03 +%-+30.5G : +8127.5 +%-+30.10G : +8127.53418 +%-+30.30G : +8127.5341796875 +%#+G : +8127.53 +%#+.G : +8.E+03 +%#+.0G : +8.E+03 +%#+.1G : +8.E+03 +%#+.2G : +8.1E+03 +%#+.5G : +8127.5 +%#+.10G : +8127.534180 +%#+.30G : +8127.53417968750000000000000000 +%#+0G : +8127.53 +%#+0.G : +8.E+03 +%#+0.0G : +8.E+03 +%#+0.1G : +8.E+03 +%#+0.2G : +8.1E+03 +%#+0.5G : +8127.5 +%#+0.10G : +8127.534180 +%#+0.30G : +8127.53417968750000000000000000 +%#+1G : +8127.53 +%#+1.G : +8.E+03 +%#+1.0G : +8.E+03 +%#+1.1G : +8.E+03 +%#+1.2G : +8.1E+03 +%#+1.5G : +8127.5 +%#+1.10G : +8127.534180 +%#+1.30G : +8127.53417968750000000000000000 +%#+2G : +8127.53 +%#+2.G : +8.E+03 +%#+2.0G : +8.E+03 +%#+2.1G : +8.E+03 +%#+2.2G : +8.1E+03 +%#+2.5G : +8127.5 +%#+2.10G : +8127.534180 +%#+2.30G : +8127.53417968750000000000000000 +%#+5G : +8127.53 +%#+5.G : +8.E+03 +%#+5.0G : +8.E+03 +%#+5.1G : +8.E+03 +%#+5.2G : +8.1E+03 +%#+5.5G : +8127.5 +%#+5.10G : +8127.534180 +%#+5.30G : +8127.53417968750000000000000000 +%#+10G : +8127.53 +%#+10.G : +8.E+03 +%#+10.0G : +8.E+03 +%#+10.1G : +8.E+03 +%#+10.2G : +8.1E+03 +%#+10.5G : +8127.5 +%#+10.10G : +8127.534180 +%#+10.30G : +8127.53417968750000000000000000 +%#+30G : +8127.53 +%#+30.G : +8.E+03 +%#+30.0G : +8.E+03 +%#+30.1G : +8.E+03 +%#+30.2G : +8.1E+03 +%#+30.5G : +8127.5 +%#+30.10G : +8127.534180 +%#+30.30G : +8127.53417968750000000000000000 +%+0G : +8127.53 +%+0.G : +8E+03 +%+0.0G : +8E+03 +%+0.1G : +8E+03 +%+0.2G : +8.1E+03 +%+0.5G : +8127.5 +%+0.10G : +8127.53418 +%+0.30G : +8127.5341796875 +%+01G : +8127.53 +%+01.G : +8E+03 +%+01.0G : +8E+03 +%+01.1G : +8E+03 +%+01.2G : +8.1E+03 +%+01.5G : +8127.5 +%+01.10G : +8127.53418 +%+01.30G : +8127.5341796875 +%+02G : +8127.53 +%+02.G : +8E+03 +%+02.0G : +8E+03 +%+02.1G : +8E+03 +%+02.2G : +8.1E+03 +%+02.5G : +8127.5 +%+02.10G : +8127.53418 +%+02.30G : +8127.5341796875 +%+05G : +8127.53 +%+05.G : +8E+03 +%+05.0G : +8E+03 +%+05.1G : +8E+03 +%+05.2G : +8.1E+03 +%+05.5G : +8127.5 +%+05.10G : +8127.53418 +%+05.30G : +8127.5341796875 +%+010G : +008127.53 +%+010.G : +00008E+03 +%+010.0G : +00008E+03 +%+010.1G : +00008E+03 +%+010.2G : +008.1E+03 +%+010.5G : +0008127.5 +%+010.10G : +8127.53418 +%+010.30G : +8127.5341796875 +%+030G : +00000000000000000000008127.53 +%+030.G : +0000000000000000000000008E+03 +%+030.0G : +0000000000000000000000008E+03 +%+030.1G : +0000000000000000000000008E+03 +%+030.2G : +00000000000000000000008.1E+03 +%+030.5G : +000000000000000000000008127.5 +%+030.10G : +00000000000000000008127.53418 +%+030.30G : +000000000000008127.5341796875 +%+-G : +8127.53 +%+-.G : +8E+03 +%+-.0G : +8E+03 +%+-.1G : +8E+03 +%+-.2G : +8.1E+03 +%+-.5G : +8127.5 +%+-.10G : +8127.53418 +%+-.30G : +8127.5341796875 +%+-1G : +8127.53 +%+-1.G : +8E+03 +%+-1.0G : +8E+03 +%+-1.1G : +8E+03 +%+-1.2G : +8.1E+03 +%+-1.5G : +8127.5 +%+-1.10G : +8127.53418 +%+-1.30G : +8127.5341796875 +%+-2G : +8127.53 +%+-2.G : +8E+03 +%+-2.0G : +8E+03 +%+-2.1G : +8E+03 +%+-2.2G : +8.1E+03 +%+-2.5G : +8127.5 +%+-2.10G : +8127.53418 +%+-2.30G : +8127.5341796875 +%+-5G : +8127.53 +%+-5.G : +8E+03 +%+-5.0G : +8E+03 +%+-5.1G : +8E+03 +%+-5.2G : +8.1E+03 +%+-5.5G : +8127.5 +%+-5.10G : +8127.53418 +%+-5.30G : +8127.5341796875 +%+-10G : +8127.53 +%+-10.G : +8E+03 +%+-10.0G : +8E+03 +%+-10.1G : +8E+03 +%+-10.2G : +8.1E+03 +%+-10.5G : +8127.5 +%+-10.10G : +8127.53418 +%+-10.30G : +8127.5341796875 +%+-30G : +8127.53 +%+-30.G : +8E+03 +%+-30.0G : +8E+03 +%+-30.1G : +8E+03 +%+-30.2G : +8.1E+03 +%+-30.5G : +8127.5 +%+-30.10G : +8127.53418 +%+-30.30G : +8127.5341796875 +%#-G : 8127.53 +%#-.G : 8.E+03 +%#-.0G : 8.E+03 +%#-.1G : 8.E+03 +%#-.2G : 8.1E+03 +%#-.5G : 8127.5 +%#-.10G : 8127.534180 +%#-.30G : 8127.53417968750000000000000000 +%#-1G : 8127.53 +%#-1.G : 8.E+03 +%#-1.0G : 8.E+03 +%#-1.1G : 8.E+03 +%#-1.2G : 8.1E+03 +%#-1.5G : 8127.5 +%#-1.10G : 8127.534180 +%#-1.30G : 8127.53417968750000000000000000 +%#-2G : 8127.53 +%#-2.G : 8.E+03 +%#-2.0G : 8.E+03 +%#-2.1G : 8.E+03 +%#-2.2G : 8.1E+03 +%#-2.5G : 8127.5 +%#-2.10G : 8127.534180 +%#-2.30G : 8127.53417968750000000000000000 +%#-5G : 8127.53 +%#-5.G : 8.E+03 +%#-5.0G : 8.E+03 +%#-5.1G : 8.E+03 +%#-5.2G : 8.1E+03 +%#-5.5G : 8127.5 +%#-5.10G : 8127.534180 +%#-5.30G : 8127.53417968750000000000000000 +%#-10G : 8127.53 +%#-10.G : 8.E+03 +%#-10.0G : 8.E+03 +%#-10.1G : 8.E+03 +%#-10.2G : 8.1E+03 +%#-10.5G : 8127.5 +%#-10.10G : 8127.534180 +%#-10.30G : 8127.53417968750000000000000000 +%#-30G : 8127.53 +%#-30.G : 8.E+03 +%#-30.0G : 8.E+03 +%#-30.1G : 8.E+03 +%#-30.2G : 8.1E+03 +%#-30.5G : 8127.5 +%#-30.10G : 8127.534180 +%#-30.30G : 8127.53417968750000000000000000 +%+#G : +8127.53 +%+#.G : +8.E+03 +%+#.0G : +8.E+03 +%+#.1G : +8.E+03 +%+#.2G : +8.1E+03 +%+#.5G : +8127.5 +%+#.10G : +8127.534180 +%+#.30G : +8127.53417968750000000000000000 +%+#0G : +8127.53 +%+#0.G : +8.E+03 +%+#0.0G : +8.E+03 +%+#0.1G : +8.E+03 +%+#0.2G : +8.1E+03 +%+#0.5G : +8127.5 +%+#0.10G : +8127.534180 +%+#0.30G : +8127.53417968750000000000000000 +%+#1G : +8127.53 +%+#1.G : +8.E+03 +%+#1.0G : +8.E+03 +%+#1.1G : +8.E+03 +%+#1.2G : +8.1E+03 +%+#1.5G : +8127.5 +%+#1.10G : +8127.534180 +%+#1.30G : +8127.53417968750000000000000000 +%+#2G : +8127.53 +%+#2.G : +8.E+03 +%+#2.0G : +8.E+03 +%+#2.1G : +8.E+03 +%+#2.2G : +8.1E+03 +%+#2.5G : +8127.5 +%+#2.10G : +8127.534180 +%+#2.30G : +8127.53417968750000000000000000 +%+#5G : +8127.53 +%+#5.G : +8.E+03 +%+#5.0G : +8.E+03 +%+#5.1G : +8.E+03 +%+#5.2G : +8.1E+03 +%+#5.5G : +8127.5 +%+#5.10G : +8127.534180 +%+#5.30G : +8127.53417968750000000000000000 +%+#10G : +8127.53 +%+#10.G : +8.E+03 +%+#10.0G : +8.E+03 +%+#10.1G : +8.E+03 +%+#10.2G : +8.1E+03 +%+#10.5G : +8127.5 +%+#10.10G : +8127.534180 +%+#10.30G : +8127.53417968750000000000000000 +%+#30G : +8127.53 +%+#30.G : +8.E+03 +%+#30.0G : +8.E+03 +%+#30.1G : +8.E+03 +%+#30.2G : +8.1E+03 +%+#30.5G : +8127.5 +%+#30.10G : +8127.534180 +%+#30.30G : +8127.53417968750000000000000000 +%-#G : 8127.53 +%-#.G : 8.E+03 +%-#.0G : 8.E+03 +%-#.1G : 8.E+03 +%-#.2G : 8.1E+03 +%-#.5G : 8127.5 +%-#.10G : 8127.534180 +%-#.30G : 8127.53417968750000000000000000 +%-#1G : 8127.53 +%-#1.G : 8.E+03 +%-#1.0G : 8.E+03 +%-#1.1G : 8.E+03 +%-#1.2G : 8.1E+03 +%-#1.5G : 8127.5 +%-#1.10G : 8127.534180 +%-#1.30G : 8127.53417968750000000000000000 +%-#2G : 8127.53 +%-#2.G : 8.E+03 +%-#2.0G : 8.E+03 +%-#2.1G : 8.E+03 +%-#2.2G : 8.1E+03 +%-#2.5G : 8127.5 +%-#2.10G : 8127.534180 +%-#2.30G : 8127.53417968750000000000000000 +%-#5G : 8127.53 +%-#5.G : 8.E+03 +%-#5.0G : 8.E+03 +%-#5.1G : 8.E+03 +%-#5.2G : 8.1E+03 +%-#5.5G : 8127.5 +%-#5.10G : 8127.534180 +%-#5.30G : 8127.53417968750000000000000000 +%-#10G : 8127.53 +%-#10.G : 8.E+03 +%-#10.0G : 8.E+03 +%-#10.1G : 8.E+03 +%-#10.2G : 8.1E+03 +%-#10.5G : 8127.5 +%-#10.10G : 8127.534180 +%-#10.30G : 8127.53417968750000000000000000 +%-#30G : 8127.53 +%-#30.G : 8.E+03 +%-#30.0G : 8.E+03 +%-#30.1G : 8.E+03 +%-#30.2G : 8.1E+03 +%-#30.5G : 8127.5 +%-#30.10G : 8127.534180 +%-#30.30G : 8127.53417968750000000000000000 +%0#G : 8127.53 +%0#.G : 8.E+03 +%0#.0G : 8.E+03 +%0#.1G : 8.E+03 +%0#.2G : 8.1E+03 +%0#.5G : 8127.5 +%0#.10G : 8127.534180 +%0#.30G : 8127.53417968750000000000000000 +%0#1G : 8127.53 +%0#1.G : 8.E+03 +%0#1.0G : 8.E+03 +%0#1.1G : 8.E+03 +%0#1.2G : 8.1E+03 +%0#1.5G : 8127.5 +%0#1.10G : 8127.534180 +%0#1.30G : 8127.53417968750000000000000000 +%0#2G : 8127.53 +%0#2.G : 8.E+03 +%0#2.0G : 8.E+03 +%0#2.1G : 8.E+03 +%0#2.2G : 8.1E+03 +%0#2.5G : 8127.5 +%0#2.10G : 8127.534180 +%0#2.30G : 8127.53417968750000000000000000 +%0#5G : 8127.53 +%0#5.G : 8.E+03 +%0#5.0G : 8.E+03 +%0#5.1G : 8.E+03 +%0#5.2G : 8.1E+03 +%0#5.5G : 8127.5 +%0#5.10G : 8127.534180 +%0#5.30G : 8127.53417968750000000000000000 +%0#10G : 0008127.53 +%0#10.G : 00008.E+03 +%0#10.0G : 00008.E+03 +%0#10.1G : 00008.E+03 +%0#10.2G : 0008.1E+03 +%0#10.5G : 00008127.5 +%0#10.10G : 8127.534180 +%0#10.30G : 8127.53417968750000000000000000 +%0#30G : 000000000000000000000008127.53 +%0#30.G : 0000000000000000000000008.E+03 +%0#30.0G : 0000000000000000000000008.E+03 +%0#30.1G : 0000000000000000000000008.E+03 +%0#30.2G : 000000000000000000000008.1E+03 +%0#30.5G : 0000000000000000000000008127.5 +%0#30.10G : 00000000000000000008127.534180 +%0#30.30G : 8127.53417968750000000000000000 +%+0G : +8127.53 +%+0.G : +8E+03 +%+0.0G : +8E+03 +%+0.1G : +8E+03 +%+0.2G : +8.1E+03 +%+0.5G : +8127.5 +%+0.10G : +8127.53418 +%+0.30G : +8127.5341796875 +%+01G : +8127.53 +%+01.G : +8E+03 +%+01.0G : +8E+03 +%+01.1G : +8E+03 +%+01.2G : +8.1E+03 +%+01.5G : +8127.5 +%+01.10G : +8127.53418 +%+01.30G : +8127.5341796875 +%+02G : +8127.53 +%+02.G : +8E+03 +%+02.0G : +8E+03 +%+02.1G : +8E+03 +%+02.2G : +8.1E+03 +%+02.5G : +8127.5 +%+02.10G : +8127.53418 +%+02.30G : +8127.5341796875 +%+05G : +8127.53 +%+05.G : +8E+03 +%+05.0G : +8E+03 +%+05.1G : +8E+03 +%+05.2G : +8.1E+03 +%+05.5G : +8127.5 +%+05.10G : +8127.53418 +%+05.30G : +8127.5341796875 +%+010G : +008127.53 +%+010.G : +00008E+03 +%+010.0G : +00008E+03 +%+010.1G : +00008E+03 +%+010.2G : +008.1E+03 +%+010.5G : +0008127.5 +%+010.10G : +8127.53418 +%+010.30G : +8127.5341796875 +%+030G : +00000000000000000000008127.53 +%+030.G : +0000000000000000000000008E+03 +%+030.0G : +0000000000000000000000008E+03 +%+030.1G : +0000000000000000000000008E+03 +%+030.2G : +00000000000000000000008.1E+03 +%+030.5G : +000000000000000000000008127.5 +%+030.10G : +00000000000000000008127.53418 +%+030.30G : +000000000000008127.5341796875 +%#0G : 8127.53 +%#0.G : 8.E+03 +%#0.0G : 8.E+03 +%#0.1G : 8.E+03 +%#0.2G : 8.1E+03 +%#0.5G : 8127.5 +%#0.10G : 8127.534180 +%#0.30G : 8127.53417968750000000000000000 +%#01G : 8127.53 +%#01.G : 8.E+03 +%#01.0G : 8.E+03 +%#01.1G : 8.E+03 +%#01.2G : 8.1E+03 +%#01.5G : 8127.5 +%#01.10G : 8127.534180 +%#01.30G : 8127.53417968750000000000000000 +%#02G : 8127.53 +%#02.G : 8.E+03 +%#02.0G : 8.E+03 +%#02.1G : 8.E+03 +%#02.2G : 8.1E+03 +%#02.5G : 8127.5 +%#02.10G : 8127.534180 +%#02.30G : 8127.53417968750000000000000000 +%#05G : 8127.53 +%#05.G : 8.E+03 +%#05.0G : 8.E+03 +%#05.1G : 8.E+03 +%#05.2G : 8.1E+03 +%#05.5G : 8127.5 +%#05.10G : 8127.534180 +%#05.30G : 8127.53417968750000000000000000 +%#010G : 0008127.53 +%#010.G : 00008.E+03 +%#010.0G : 00008.E+03 +%#010.1G : 00008.E+03 +%#010.2G : 0008.1E+03 +%#010.5G : 00008127.5 +%#010.10G : 8127.534180 +%#010.30G : 8127.53417968750000000000000000 +%#030G : 000000000000000000000008127.53 +%#030.G : 0000000000000000000000008.E+03 +%#030.0G : 0000000000000000000000008.E+03 +%#030.1G : 0000000000000000000000008.E+03 +%#030.2G : 000000000000000000000008.1E+03 +%#030.5G : 0000000000000000000000008127.5 +%#030.10G : 00000000000000000008127.534180 +%#030.30G : 8127.53417968750000000000000000 +%-+#G : +8127.53 +%-+#.G : +8.E+03 +%-+#.0G : +8.E+03 +%-+#.1G : +8.E+03 +%-+#.2G : +8.1E+03 +%-+#.5G : +8127.5 +%-+#.10G : +8127.534180 +%-+#.30G : +8127.53417968750000000000000000 +%-+#1G : +8127.53 +%-+#1.G : +8.E+03 +%-+#1.0G : +8.E+03 +%-+#1.1G : +8.E+03 +%-+#1.2G : +8.1E+03 +%-+#1.5G : +8127.5 +%-+#1.10G : +8127.534180 +%-+#1.30G : +8127.53417968750000000000000000 +%-+#2G : +8127.53 +%-+#2.G : +8.E+03 +%-+#2.0G : +8.E+03 +%-+#2.1G : +8.E+03 +%-+#2.2G : +8.1E+03 +%-+#2.5G : +8127.5 +%-+#2.10G : +8127.534180 +%-+#2.30G : +8127.53417968750000000000000000 +%-+#5G : +8127.53 +%-+#5.G : +8.E+03 +%-+#5.0G : +8.E+03 +%-+#5.1G : +8.E+03 +%-+#5.2G : +8.1E+03 +%-+#5.5G : +8127.5 +%-+#5.10G : +8127.534180 +%-+#5.30G : +8127.53417968750000000000000000 +%-+#10G : +8127.53 +%-+#10.G : +8.E+03 +%-+#10.0G : +8.E+03 +%-+#10.1G : +8.E+03 +%-+#10.2G : +8.1E+03 +%-+#10.5G : +8127.5 +%-+#10.10G : +8127.534180 +%-+#10.30G : +8127.53417968750000000000000000 +%-+#30G : +8127.53 +%-+#30.G : +8.E+03 +%-+#30.0G : +8.E+03 +%-+#30.1G : +8.E+03 +%-+#30.2G : +8.1E+03 +%-+#30.5G : +8127.5 +%-+#30.10G : +8127.534180 +%-+#30.30G : +8127.53417968750000000000000000 +%0+#G : +8127.53 +%0+#.G : +8.E+03 +%0+#.0G : +8.E+03 +%0+#.1G : +8.E+03 +%0+#.2G : +8.1E+03 +%0+#.5G : +8127.5 +%0+#.10G : +8127.534180 +%0+#.30G : +8127.53417968750000000000000000 +%0+#1G : +8127.53 +%0+#1.G : +8.E+03 +%0+#1.0G : +8.E+03 +%0+#1.1G : +8.E+03 +%0+#1.2G : +8.1E+03 +%0+#1.5G : +8127.5 +%0+#1.10G : +8127.534180 +%0+#1.30G : +8127.53417968750000000000000000 +%0+#2G : +8127.53 +%0+#2.G : +8.E+03 +%0+#2.0G : +8.E+03 +%0+#2.1G : +8.E+03 +%0+#2.2G : +8.1E+03 +%0+#2.5G : +8127.5 +%0+#2.10G : +8127.534180 +%0+#2.30G : +8127.53417968750000000000000000 +%0+#5G : +8127.53 +%0+#5.G : +8.E+03 +%0+#5.0G : +8.E+03 +%0+#5.1G : +8.E+03 +%0+#5.2G : +8.1E+03 +%0+#5.5G : +8127.5 +%0+#5.10G : +8127.534180 +%0+#5.30G : +8127.53417968750000000000000000 +%0+#10G : +008127.53 +%0+#10.G : +0008.E+03 +%0+#10.0G : +0008.E+03 +%0+#10.1G : +0008.E+03 +%0+#10.2G : +008.1E+03 +%0+#10.5G : +0008127.5 +%0+#10.10G : +8127.534180 +%0+#10.30G : +8127.53417968750000000000000000 +%0+#30G : +00000000000000000000008127.53 +%0+#30.G : +000000000000000000000008.E+03 +%0+#30.0G : +000000000000000000000008.E+03 +%0+#30.1G : +000000000000000000000008.E+03 +%0+#30.2G : +00000000000000000000008.1E+03 +%0+#30.5G : +000000000000000000000008127.5 +%0+#30.10G : +0000000000000000008127.534180 +%0+#30.30G : +8127.53417968750000000000000000 +%#-+G : +8127.53 +%#-+.G : +8.E+03 +%#-+.0G : +8.E+03 +%#-+.1G : +8.E+03 +%#-+.2G : +8.1E+03 +%#-+.5G : +8127.5 +%#-+.10G : +8127.534180 +%#-+.30G : +8127.53417968750000000000000000 +%#-+1G : +8127.53 +%#-+1.G : +8.E+03 +%#-+1.0G : +8.E+03 +%#-+1.1G : +8.E+03 +%#-+1.2G : +8.1E+03 +%#-+1.5G : +8127.5 +%#-+1.10G : +8127.534180 +%#-+1.30G : +8127.53417968750000000000000000 +%#-+2G : +8127.53 +%#-+2.G : +8.E+03 +%#-+2.0G : +8.E+03 +%#-+2.1G : +8.E+03 +%#-+2.2G : +8.1E+03 +%#-+2.5G : +8127.5 +%#-+2.10G : +8127.534180 +%#-+2.30G : +8127.53417968750000000000000000 +%#-+5G : +8127.53 +%#-+5.G : +8.E+03 +%#-+5.0G : +8.E+03 +%#-+5.1G : +8.E+03 +%#-+5.2G : +8.1E+03 +%#-+5.5G : +8127.5 +%#-+5.10G : +8127.534180 +%#-+5.30G : +8127.53417968750000000000000000 +%#-+10G : +8127.53 +%#-+10.G : +8.E+03 +%#-+10.0G : +8.E+03 +%#-+10.1G : +8.E+03 +%#-+10.2G : +8.1E+03 +%#-+10.5G : +8127.5 +%#-+10.10G : +8127.534180 +%#-+10.30G : +8127.53417968750000000000000000 +%#-+30G : +8127.53 +%#-+30.G : +8.E+03 +%#-+30.0G : +8.E+03 +%#-+30.1G : +8.E+03 +%#-+30.2G : +8.1E+03 +%#-+30.5G : +8127.5 +%#-+30.10G : +8127.534180 +%#-+30.30G : +8127.53417968750000000000000000 +%+#-G : +8127.53 +%+#-.G : +8.E+03 +%+#-.0G : +8.E+03 +%+#-.1G : +8.E+03 +%+#-.2G : +8.1E+03 +%+#-.5G : +8127.5 +%+#-.10G : +8127.534180 +%+#-.30G : +8127.53417968750000000000000000 +%+#-1G : +8127.53 +%+#-1.G : +8.E+03 +%+#-1.0G : +8.E+03 +%+#-1.1G : +8.E+03 +%+#-1.2G : +8.1E+03 +%+#-1.5G : +8127.5 +%+#-1.10G : +8127.534180 +%+#-1.30G : +8127.53417968750000000000000000 +%+#-2G : +8127.53 +%+#-2.G : +8.E+03 +%+#-2.0G : +8.E+03 +%+#-2.1G : +8.E+03 +%+#-2.2G : +8.1E+03 +%+#-2.5G : +8127.5 +%+#-2.10G : +8127.534180 +%+#-2.30G : +8127.53417968750000000000000000 +%+#-5G : +8127.53 +%+#-5.G : +8.E+03 +%+#-5.0G : +8.E+03 +%+#-5.1G : +8.E+03 +%+#-5.2G : +8.1E+03 +%+#-5.5G : +8127.5 +%+#-5.10G : +8127.534180 +%+#-5.30G : +8127.53417968750000000000000000 +%+#-10G : +8127.53 +%+#-10.G : +8.E+03 +%+#-10.0G : +8.E+03 +%+#-10.1G : +8.E+03 +%+#-10.2G : +8.1E+03 +%+#-10.5G : +8127.5 +%+#-10.10G : +8127.534180 +%+#-10.30G : +8127.53417968750000000000000000 +%+#-30G : +8127.53 +%+#-30.G : +8.E+03 +%+#-30.0G : +8.E+03 +%+#-30.1G : +8.E+03 +%+#-30.2G : +8.1E+03 +%+#-30.5G : +8127.5 +%+#-30.10G : +8127.534180 +%+#-30.30G : +8127.53417968750000000000000000 +%-x : 7c042e +%-.x : 7c042e +%-.0x : 7c042e +%-.1x : 7c042e +%-.2x : 7c042e +%-.5x : 7c042e +%-.10x : 00007c042e +%-.30x : 0000000000000000000000007c042e +%-1x : 7c042e +%-1.x : 7c042e +%-1.0x : 7c042e +%-1.1x : 7c042e +%-1.2x : 7c042e +%-1.5x : 7c042e +%-1.10x : 00007c042e +%-1.30x : 0000000000000000000000007c042e +%-2x : 7c042e +%-2.x : 7c042e +%-2.0x : 7c042e +%-2.1x : 7c042e +%-2.2x : 7c042e +%-2.5x : 7c042e +%-2.10x : 00007c042e +%-2.30x : 0000000000000000000000007c042e +%-5x : 7c042e +%-5.x : 7c042e +%-5.0x : 7c042e +%-5.1x : 7c042e +%-5.2x : 7c042e +%-5.5x : 7c042e +%-5.10x : 00007c042e +%-5.30x : 0000000000000000000000007c042e +%-10x : 7c042e +%-10.x : 7c042e +%-10.0x : 7c042e +%-10.1x : 7c042e +%-10.2x : 7c042e +%-10.5x : 7c042e +%-10.10x : 00007c042e +%-10.30x : 0000000000000000000000007c042e +%-30x : 7c042e +%-30.x : 7c042e +%-30.0x : 7c042e +%-30.1x : 7c042e +%-30.2x : 7c042e +%-30.5x : 7c042e +%-30.10x : 00007c042e +%-30.30x : 0000000000000000000000007c042e +%#x : 0x7c042e +%#.x : 0x7c042e +%#.0x : 0x7c042e +%#.1x : 0x7c042e +%#.2x : 0x7c042e +%#.5x : 0x7c042e +%#.10x : 0x00007c042e +%#.30x : 0x0000000000000000000000007c042e +%#0x : 0x7c042e +%#1x : 0x7c042e +%#1.x : 0x7c042e +%#1.0x : 0x7c042e +%#1.1x : 0x7c042e +%#1.2x : 0x7c042e +%#1.5x : 0x7c042e +%#1.10x : 0x00007c042e +%#1.30x : 0x0000000000000000000000007c042e +%#2x : 0x7c042e +%#2.x : 0x7c042e +%#2.0x : 0x7c042e +%#2.1x : 0x7c042e +%#2.2x : 0x7c042e +%#2.5x : 0x7c042e +%#2.10x : 0x00007c042e +%#2.30x : 0x0000000000000000000000007c042e +%#5x : 0x7c042e +%#5.x : 0x7c042e +%#5.0x : 0x7c042e +%#5.1x : 0x7c042e +%#5.2x : 0x7c042e +%#5.5x : 0x7c042e +%#5.10x : 0x00007c042e +%#5.30x : 0x0000000000000000000000007c042e +%#10x : 0x7c042e +%#10.x : 0x7c042e +%#10.0x : 0x7c042e +%#10.1x : 0x7c042e +%#10.2x : 0x7c042e +%#10.5x : 0x7c042e +%#10.10x : 0x00007c042e +%#10.30x : 0x0000000000000000000000007c042e +%#30x : 0x7c042e +%#30.x : 0x7c042e +%#30.0x : 0x7c042e +%#30.1x : 0x7c042e +%#30.2x : 0x7c042e +%#30.5x : 0x7c042e +%#30.10x : 0x00007c042e +%#30.30x : 0x0000000000000000000000007c042e +%0x : 7c042e +%01x : 7c042e +%02x : 7c042e +%05x : 7c042e +%010x : 00007c042e +%030x : 0000000000000000000000007c042e +%#-x : 0x7c042e +%#-.x : 0x7c042e +%#-.0x : 0x7c042e +%#-.1x : 0x7c042e +%#-.2x : 0x7c042e +%#-.5x : 0x7c042e +%#-.10x : 0x00007c042e +%#-.30x : 0x0000000000000000000000007c042e +%#-1x : 0x7c042e +%#-1.x : 0x7c042e +%#-1.0x : 0x7c042e +%#-1.1x : 0x7c042e +%#-1.2x : 0x7c042e +%#-1.5x : 0x7c042e +%#-1.10x : 0x00007c042e +%#-1.30x : 0x0000000000000000000000007c042e +%#-2x : 0x7c042e +%#-2.x : 0x7c042e +%#-2.0x : 0x7c042e +%#-2.1x : 0x7c042e +%#-2.2x : 0x7c042e +%#-2.5x : 0x7c042e +%#-2.10x : 0x00007c042e +%#-2.30x : 0x0000000000000000000000007c042e +%#-5x : 0x7c042e +%#-5.x : 0x7c042e +%#-5.0x : 0x7c042e +%#-5.1x : 0x7c042e +%#-5.2x : 0x7c042e +%#-5.5x : 0x7c042e +%#-5.10x : 0x00007c042e +%#-5.30x : 0x0000000000000000000000007c042e +%#-10x : 0x7c042e +%#-10.x : 0x7c042e +%#-10.0x : 0x7c042e +%#-10.1x : 0x7c042e +%#-10.2x : 0x7c042e +%#-10.5x : 0x7c042e +%#-10.10x : 0x00007c042e +%#-10.30x : 0x0000000000000000000000007c042e +%#-30x : 0x7c042e +%#-30.x : 0x7c042e +%#-30.0x : 0x7c042e +%#-30.1x : 0x7c042e +%#-30.2x : 0x7c042e +%#-30.5x : 0x7c042e +%#-30.10x : 0x00007c042e +%#-30.30x : 0x0000000000000000000000007c042e +%-#x : 0x7c042e +%-#.x : 0x7c042e +%-#.0x : 0x7c042e +%-#.1x : 0x7c042e +%-#.2x : 0x7c042e +%-#.5x : 0x7c042e +%-#.10x : 0x00007c042e +%-#.30x : 0x0000000000000000000000007c042e +%-#1x : 0x7c042e +%-#1.x : 0x7c042e +%-#1.0x : 0x7c042e +%-#1.1x : 0x7c042e +%-#1.2x : 0x7c042e +%-#1.5x : 0x7c042e +%-#1.10x : 0x00007c042e +%-#1.30x : 0x0000000000000000000000007c042e +%-#2x : 0x7c042e +%-#2.x : 0x7c042e +%-#2.0x : 0x7c042e +%-#2.1x : 0x7c042e +%-#2.2x : 0x7c042e +%-#2.5x : 0x7c042e +%-#2.10x : 0x00007c042e +%-#2.30x : 0x0000000000000000000000007c042e +%-#5x : 0x7c042e +%-#5.x : 0x7c042e +%-#5.0x : 0x7c042e +%-#5.1x : 0x7c042e +%-#5.2x : 0x7c042e +%-#5.5x : 0x7c042e +%-#5.10x : 0x00007c042e +%-#5.30x : 0x0000000000000000000000007c042e +%-#10x : 0x7c042e +%-#10.x : 0x7c042e +%-#10.0x : 0x7c042e +%-#10.1x : 0x7c042e +%-#10.2x : 0x7c042e +%-#10.5x : 0x7c042e +%-#10.10x : 0x00007c042e +%-#10.30x : 0x0000000000000000000000007c042e +%-#30x : 0x7c042e +%-#30.x : 0x7c042e +%-#30.0x : 0x7c042e +%-#30.1x : 0x7c042e +%-#30.2x : 0x7c042e +%-#30.5x : 0x7c042e +%-#30.10x : 0x00007c042e +%-#30.30x : 0x0000000000000000000000007c042e +%0#x : 0x7c042e +%0#1x : 0x7c042e +%0#2x : 0x7c042e +%0#5x : 0x7c042e +%0#10x : 0x007c042e +%0#30x : 0x00000000000000000000007c042e +%#0x : 0x7c042e +%#01x : 0x7c042e +%#02x : 0x7c042e +%#05x : 0x7c042e +%#010x : 0x007c042e +%#030x : 0x00000000000000000000007c042e +%-X : 7C042E +%-.X : 7C042E +%-.0X : 7C042E +%-.1X : 7C042E +%-.2X : 7C042E +%-.5X : 7C042E +%-.10X : 00007C042E +%-.30X : 0000000000000000000000007C042E +%-1X : 7C042E +%-1.X : 7C042E +%-1.0X : 7C042E +%-1.1X : 7C042E +%-1.2X : 7C042E +%-1.5X : 7C042E +%-1.10X : 00007C042E +%-1.30X : 0000000000000000000000007C042E +%-2X : 7C042E +%-2.X : 7C042E +%-2.0X : 7C042E +%-2.1X : 7C042E +%-2.2X : 7C042E +%-2.5X : 7C042E +%-2.10X : 00007C042E +%-2.30X : 0000000000000000000000007C042E +%-5X : 7C042E +%-5.X : 7C042E +%-5.0X : 7C042E +%-5.1X : 7C042E +%-5.2X : 7C042E +%-5.5X : 7C042E +%-5.10X : 00007C042E +%-5.30X : 0000000000000000000000007C042E +%-10X : 7C042E +%-10.X : 7C042E +%-10.0X : 7C042E +%-10.1X : 7C042E +%-10.2X : 7C042E +%-10.5X : 7C042E +%-10.10X : 00007C042E +%-10.30X : 0000000000000000000000007C042E +%-30X : 7C042E +%-30.X : 7C042E +%-30.0X : 7C042E +%-30.1X : 7C042E +%-30.2X : 7C042E +%-30.5X : 7C042E +%-30.10X : 00007C042E +%-30.30X : 0000000000000000000000007C042E +%#X : 0X7C042E +%#.X : 0X7C042E +%#.0X : 0X7C042E +%#.1X : 0X7C042E +%#.2X : 0X7C042E +%#.5X : 0X7C042E +%#.10X : 0X00007C042E +%#.30X : 0X0000000000000000000000007C042E +%#0X : 0X7C042E +%#1X : 0X7C042E +%#1.X : 0X7C042E +%#1.0X : 0X7C042E +%#1.1X : 0X7C042E +%#1.2X : 0X7C042E +%#1.5X : 0X7C042E +%#1.10X : 0X00007C042E +%#1.30X : 0X0000000000000000000000007C042E +%#2X : 0X7C042E +%#2.X : 0X7C042E +%#2.0X : 0X7C042E +%#2.1X : 0X7C042E +%#2.2X : 0X7C042E +%#2.5X : 0X7C042E +%#2.10X : 0X00007C042E +%#2.30X : 0X0000000000000000000000007C042E +%#5X : 0X7C042E +%#5.X : 0X7C042E +%#5.0X : 0X7C042E +%#5.1X : 0X7C042E +%#5.2X : 0X7C042E +%#5.5X : 0X7C042E +%#5.10X : 0X00007C042E +%#5.30X : 0X0000000000000000000000007C042E +%#10X : 0X7C042E +%#10.X : 0X7C042E +%#10.0X : 0X7C042E +%#10.1X : 0X7C042E +%#10.2X : 0X7C042E +%#10.5X : 0X7C042E +%#10.10X : 0X00007C042E +%#10.30X : 0X0000000000000000000000007C042E +%#30X : 0X7C042E +%#30.X : 0X7C042E +%#30.0X : 0X7C042E +%#30.1X : 0X7C042E +%#30.2X : 0X7C042E +%#30.5X : 0X7C042E +%#30.10X : 0X00007C042E +%#30.30X : 0X0000000000000000000000007C042E +%0X : 7C042E +%01X : 7C042E +%02X : 7C042E +%05X : 7C042E +%010X : 00007C042E +%030X : 0000000000000000000000007C042E +%#-X : 0X7C042E +%#-.X : 0X7C042E +%#-.0X : 0X7C042E +%#-.1X : 0X7C042E +%#-.2X : 0X7C042E +%#-.5X : 0X7C042E +%#-.10X : 0X00007C042E +%#-.30X : 0X0000000000000000000000007C042E +%#-1X : 0X7C042E +%#-1.X : 0X7C042E +%#-1.0X : 0X7C042E +%#-1.1X : 0X7C042E +%#-1.2X : 0X7C042E +%#-1.5X : 0X7C042E +%#-1.10X : 0X00007C042E +%#-1.30X : 0X0000000000000000000000007C042E +%#-2X : 0X7C042E +%#-2.X : 0X7C042E +%#-2.0X : 0X7C042E +%#-2.1X : 0X7C042E +%#-2.2X : 0X7C042E +%#-2.5X : 0X7C042E +%#-2.10X : 0X00007C042E +%#-2.30X : 0X0000000000000000000000007C042E +%#-5X : 0X7C042E +%#-5.X : 0X7C042E +%#-5.0X : 0X7C042E +%#-5.1X : 0X7C042E +%#-5.2X : 0X7C042E +%#-5.5X : 0X7C042E +%#-5.10X : 0X00007C042E +%#-5.30X : 0X0000000000000000000000007C042E +%#-10X : 0X7C042E +%#-10.X : 0X7C042E +%#-10.0X : 0X7C042E +%#-10.1X : 0X7C042E +%#-10.2X : 0X7C042E +%#-10.5X : 0X7C042E +%#-10.10X : 0X00007C042E +%#-10.30X : 0X0000000000000000000000007C042E +%#-30X : 0X7C042E +%#-30.X : 0X7C042E +%#-30.0X : 0X7C042E +%#-30.1X : 0X7C042E +%#-30.2X : 0X7C042E +%#-30.5X : 0X7C042E +%#-30.10X : 0X00007C042E +%#-30.30X : 0X0000000000000000000000007C042E +%-#X : 0X7C042E +%-#.X : 0X7C042E +%-#.0X : 0X7C042E +%-#.1X : 0X7C042E +%-#.2X : 0X7C042E +%-#.5X : 0X7C042E +%-#.10X : 0X00007C042E +%-#.30X : 0X0000000000000000000000007C042E +%-#1X : 0X7C042E +%-#1.X : 0X7C042E +%-#1.0X : 0X7C042E +%-#1.1X : 0X7C042E +%-#1.2X : 0X7C042E +%-#1.5X : 0X7C042E +%-#1.10X : 0X00007C042E +%-#1.30X : 0X0000000000000000000000007C042E +%-#2X : 0X7C042E +%-#2.X : 0X7C042E +%-#2.0X : 0X7C042E +%-#2.1X : 0X7C042E +%-#2.2X : 0X7C042E +%-#2.5X : 0X7C042E +%-#2.10X : 0X00007C042E +%-#2.30X : 0X0000000000000000000000007C042E +%-#5X : 0X7C042E +%-#5.X : 0X7C042E +%-#5.0X : 0X7C042E +%-#5.1X : 0X7C042E +%-#5.2X : 0X7C042E +%-#5.5X : 0X7C042E +%-#5.10X : 0X00007C042E +%-#5.30X : 0X0000000000000000000000007C042E +%-#10X : 0X7C042E +%-#10.X : 0X7C042E +%-#10.0X : 0X7C042E +%-#10.1X : 0X7C042E +%-#10.2X : 0X7C042E +%-#10.5X : 0X7C042E +%-#10.10X : 0X00007C042E +%-#10.30X : 0X0000000000000000000000007C042E +%-#30X : 0X7C042E +%-#30.X : 0X7C042E +%-#30.0X : 0X7C042E +%-#30.1X : 0X7C042E +%-#30.2X : 0X7C042E +%-#30.5X : 0X7C042E +%-#30.10X : 0X00007C042E +%-#30.30X : 0X0000000000000000000000007C042E +%0#X : 0X7C042E +%0#1X : 0X7C042E +%0#2X : 0X7C042E +%0#5X : 0X7C042E +%0#10X : 0X007C042E +%0#30X : 0X00000000000000000000007C042E +%#0X : 0X7C042E +%#01X : 0X7C042E +%#02X : 0X7C042E +%#05X : 0X7C042E +%#010X : 0X007C042E +%#030X : 0X00000000000000000000007C042E +%-o : 37002056 +%-.o : 37002056 +%-.0o : 37002056 +%-.1o : 37002056 +%-.2o : 37002056 +%-.5o : 37002056 +%-.10o : 0037002056 +%-.30o : 000000000000000000000037002056 +%-1o : 37002056 +%-1.o : 37002056 +%-1.0o : 37002056 +%-1.1o : 37002056 +%-1.2o : 37002056 +%-1.5o : 37002056 +%-1.10o : 0037002056 +%-1.30o : 000000000000000000000037002056 +%-2o : 37002056 +%-2.o : 37002056 +%-2.0o : 37002056 +%-2.1o : 37002056 +%-2.2o : 37002056 +%-2.5o : 37002056 +%-2.10o : 0037002056 +%-2.30o : 000000000000000000000037002056 +%-5o : 37002056 +%-5.o : 37002056 +%-5.0o : 37002056 +%-5.1o : 37002056 +%-5.2o : 37002056 +%-5.5o : 37002056 +%-5.10o : 0037002056 +%-5.30o : 000000000000000000000037002056 +%-10o : 37002056 +%-10.o : 37002056 +%-10.0o : 37002056 +%-10.1o : 37002056 +%-10.2o : 37002056 +%-10.5o : 37002056 +%-10.10o : 0037002056 +%-10.30o : 000000000000000000000037002056 +%-30o : 37002056 +%-30.o : 37002056 +%-30.0o : 37002056 +%-30.1o : 37002056 +%-30.2o : 37002056 +%-30.5o : 37002056 +%-30.10o : 0037002056 +%-30.30o : 000000000000000000000037002056 +%#o : 037002056 +%#.o : 037002056 +%#.0o : 037002056 +%#.1o : 037002056 +%#.2o : 037002056 +%#.5o : 037002056 +%#.10o : 0037002056 +%#.30o : 000000000000000000000037002056 +%#0o : 037002056 +%#1o : 037002056 +%#1.o : 037002056 +%#1.0o : 037002056 +%#1.1o : 037002056 +%#1.2o : 037002056 +%#1.5o : 037002056 +%#1.10o : 0037002056 +%#1.30o : 000000000000000000000037002056 +%#2o : 037002056 +%#2.o : 037002056 +%#2.0o : 037002056 +%#2.1o : 037002056 +%#2.2o : 037002056 +%#2.5o : 037002056 +%#2.10o : 0037002056 +%#2.30o : 000000000000000000000037002056 +%#5o : 037002056 +%#5.o : 037002056 +%#5.0o : 037002056 +%#5.1o : 037002056 +%#5.2o : 037002056 +%#5.5o : 037002056 +%#5.10o : 0037002056 +%#5.30o : 000000000000000000000037002056 +%#10o : 037002056 +%#10.o : 037002056 +%#10.0o : 037002056 +%#10.1o : 037002056 +%#10.2o : 037002056 +%#10.5o : 037002056 +%#10.10o : 0037002056 +%#10.30o : 000000000000000000000037002056 +%#30o : 037002056 +%#30.o : 037002056 +%#30.0o : 037002056 +%#30.1o : 037002056 +%#30.2o : 037002056 +%#30.5o : 037002056 +%#30.10o : 0037002056 +%#30.30o : 000000000000000000000037002056 +%0o : 37002056 +%01o : 37002056 +%02o : 37002056 +%05o : 37002056 +%010o : 0037002056 +%030o : 000000000000000000000037002056 +%#-o : 037002056 +%#-.o : 037002056 +%#-.0o : 037002056 +%#-.1o : 037002056 +%#-.2o : 037002056 +%#-.5o : 037002056 +%#-.10o : 0037002056 +%#-.30o : 000000000000000000000037002056 +%#-1o : 037002056 +%#-1.o : 037002056 +%#-1.0o : 037002056 +%#-1.1o : 037002056 +%#-1.2o : 037002056 +%#-1.5o : 037002056 +%#-1.10o : 0037002056 +%#-1.30o : 000000000000000000000037002056 +%#-2o : 037002056 +%#-2.o : 037002056 +%#-2.0o : 037002056 +%#-2.1o : 037002056 +%#-2.2o : 037002056 +%#-2.5o : 037002056 +%#-2.10o : 0037002056 +%#-2.30o : 000000000000000000000037002056 +%#-5o : 037002056 +%#-5.o : 037002056 +%#-5.0o : 037002056 +%#-5.1o : 037002056 +%#-5.2o : 037002056 +%#-5.5o : 037002056 +%#-5.10o : 0037002056 +%#-5.30o : 000000000000000000000037002056 +%#-10o : 037002056 +%#-10.o : 037002056 +%#-10.0o : 037002056 +%#-10.1o : 037002056 +%#-10.2o : 037002056 +%#-10.5o : 037002056 +%#-10.10o : 0037002056 +%#-10.30o : 000000000000000000000037002056 +%#-30o : 037002056 +%#-30.o : 037002056 +%#-30.0o : 037002056 +%#-30.1o : 037002056 +%#-30.2o : 037002056 +%#-30.5o : 037002056 +%#-30.10o : 0037002056 +%#-30.30o : 000000000000000000000037002056 +%-#o : 037002056 +%-#.o : 037002056 +%-#.0o : 037002056 +%-#.1o : 037002056 +%-#.2o : 037002056 +%-#.5o : 037002056 +%-#.10o : 0037002056 +%-#.30o : 000000000000000000000037002056 +%-#1o : 037002056 +%-#1.o : 037002056 +%-#1.0o : 037002056 +%-#1.1o : 037002056 +%-#1.2o : 037002056 +%-#1.5o : 037002056 +%-#1.10o : 0037002056 +%-#1.30o : 000000000000000000000037002056 +%-#2o : 037002056 +%-#2.o : 037002056 +%-#2.0o : 037002056 +%-#2.1o : 037002056 +%-#2.2o : 037002056 +%-#2.5o : 037002056 +%-#2.10o : 0037002056 +%-#2.30o : 000000000000000000000037002056 +%-#5o : 037002056 +%-#5.o : 037002056 +%-#5.0o : 037002056 +%-#5.1o : 037002056 +%-#5.2o : 037002056 +%-#5.5o : 037002056 +%-#5.10o : 0037002056 +%-#5.30o : 000000000000000000000037002056 +%-#10o : 037002056 +%-#10.o : 037002056 +%-#10.0o : 037002056 +%-#10.1o : 037002056 +%-#10.2o : 037002056 +%-#10.5o : 037002056 +%-#10.10o : 0037002056 +%-#10.30o : 000000000000000000000037002056 +%-#30o : 037002056 +%-#30.o : 037002056 +%-#30.0o : 037002056 +%-#30.1o : 037002056 +%-#30.2o : 037002056 +%-#30.5o : 037002056 +%-#30.10o : 0037002056 +%-#30.30o : 000000000000000000000037002056 +%0#o : 037002056 +%0#1o : 037002056 +%0#2o : 037002056 +%0#5o : 037002056 +%0#10o : 0037002056 +%0#30o : 000000000000000000000037002056 +%#0o : 037002056 +%#01o : 037002056 +%#02o : 037002056 +%#05o : 037002056 +%#010o : 0037002056 +%#030o : 000000000000000000000037002056 +%-s : test +%-.s : +%-.0s : +%-.1s : t +%-.2s : te +%-.5s : test +%-.10s : test +%-.30s : test +%-1s : test +%-1.s : +%-1.0s : +%-1.1s : t +%-1.2s : te +%-1.5s : test +%-1.10s : test +%-1.30s : test +%-2s : test +%-2.s : +%-2.0s : +%-2.1s : t +%-2.2s : te +%-2.5s : test +%-2.10s : test +%-2.30s : test +%-5s : test +%-5.s : +%-5.0s : +%-5.1s : t +%-5.2s : te +%-5.5s : test +%-5.10s : test +%-5.30s : test +%-10s : test +%-10.s : +%-10.0s : +%-10.1s : t +%-10.2s : te +%-10.5s : test +%-10.10s : test +%-10.30s : test +%-30s : test +%-30.s : +%-30.0s : +%-30.1s : t +%-30.2s : te +%-30.5s : test +%-30.10s : test +%-30.30s : test +%-c : x +%-1c : x +%-2c : x +%-5c : x +%-10c : x +%-30c : x +%-p : 0x4f318 +%-1p : 0x4f318 +%-2p : 0x4f318 +%-5p : 0x4f318 +%-10p : 0x4f318 +%-30p : 0x4f318 + +de +bcde +789abcde +789abcde + +de +bcde +789abcde +789abcde + +de +bcde +789abcde +789abcde +123456789abcde +123456789abcde + +789abcde +123456789abcde +789abcde +123456789abcde +789abcde + +-34 +-17186 +2023406814 +2023406814 + +-34 +-17186 +2023406814 +2023406814 + +-34 +-17186 +2023406814 +2023406814 +5124095576030430 +5124095576030430 + +2023406814 +5124095576030430 +2023406814 +5124095576030430 +2023406814 + +222 +48350 +2023406814 +2023406814 + +222 +48350 +2023406814 +2023406814 + +222 +48350 +2023406814 +2023406814 +5124095576030430 +5124095576030430 + +2023406814 +5124095576030430 +2023406814 +5124095576030430 +2023406814 + +22 +4322 +87654322 +87654322 + +22 +4322 +87654322 +87654322 + +22 +4322 +87654322 +87654322 +ffedcba987654000 +ffedcba987654000 + +87654322 +ffedcba987654000 +87654322 +ffedcba987654000 +87654322 + +34 +17186 +-2023406814 +-2023406814 + +34 +17186 +-2023406814 +-2023406814 + +34 +17186 +-2023406814 +-2023406814 +-5124095576031232 +-5124095576031232 + +-2023406814 +-5124095576031232 +-2023406814 +-5124095576031232 +-2023406814 + +34 +17186 +2271560482 +2271560482 + +34 +17186 +2271560482 +2271560482 + +34 +17186 +2271560482 +2271560482 +18441619978133520000 +18441619978133520000 + +2271560482 +18441619978133520000 +2271560482 +18441619978133520000 +2271560482 + +1234567.890123 +1234567.890123 +1234567.890123 +1234567.890123 + +-1234567.890123 +-1234567.890123 +-1234567.890123 +-1234567.890123 + +1234567.875000 +1234567.875000 +1234567.875000 +1234567.875000 + +-1234567.875000 +-1234567.875000 +-1234567.875000 +-1234567.875000 + +0 +0 +0 +0 +0 +0 +0 +0 + +1 +1 +1 +1 +1 +1 +1 +1 + +255 +65535 +4294967295 +18446744073709552000 +ff +ffff +ffffffff +10000000000000000 + +126 +32766 +2147483646 +140737488355326 +7e +7ffe +7ffffffe +7ffffffffffe + +127 +32767 +2147483647 +140737488355327 +7f +7fff +7fffffff +7fffffffffff + +128 +32768 +134217728 +549755813888 +80 +8000 +8000000 +8000000000 + +255 +65535 +4294967295 +281474976710655 +ff +ffff +ffffffff + +130 +32770 +2147483650 +18446603336221196000 +82 +8002 +80000002 +ffff800000000000 + +129 +32769 +2147483649 +18446603336221196000 +81 +8001 +80000001 +ffff800000000000 + +128 +32768 +4160749568 +18446743523953738000 +80 +8000 +f8000000 +ffffff8000000000 + +1 +1 +1 +18446462598732840000 +1 +1 +1 + +no_new_line diff --git a/tests/runner.py b/tests/runner.py index e2fd2be8..9a430037 100644 --- a/tests/runner.py +++ b/tests/runner.py @@ -35,6 +35,7 @@ class RunnerCore(unittest.TestCase): save_JS = 0 def setUp(self): + Settings.reset() self.banned_js_engines = [] if not self.save_dir: dirname = tempfile.mkdtemp(prefix="ems_" + self.__class__.__name__ + "_", dir=TEMP_DIR) @@ -169,14 +170,15 @@ class RunnerCore(unittest.TestCase): limit_size(''.join([a.rstrip()+'\n' for a in difflib.unified_diff(x.split('\n'), y.split('\n'), fromfile='expected', tofile='actual')])) )) - def assertContained(self, value, string): - if type(value) is not str: value = value() # lazy loading - if type(string) is not str: string = string() - if value not in string: - raise Exception("Expected to find '%s' in '%s', diff:\n\n%s" % ( - limit_size(value), limit_size(string), - limit_size(''.join([a.rstrip()+'\n' for a in difflib.unified_diff(value.split('\n'), string.split('\n'), fromfile='expected', tofile='actual')])) - )) + def assertContained(self, values, string): + if type(values) not in [list, tuple]: values = [values] + for value in values: + if type(string) is not str: string = string() + if value in string: return # success + raise Exception("Expected to find '%s' in '%s', diff:\n\n%s" % ( + limit_size(values[0]), limit_size(string), + limit_size(''.join([a.rstrip()+'\n' for a in difflib.unified_diff(values[0].split('\n'), string.split('\n'), fromfile='expected', tofile='actual')])) + )) def assertNotContained(self, value, string): if type(value) is not str: value = value() # lazy loading @@ -211,6 +213,8 @@ class RunnerCore(unittest.TestCase): ################################################################################################### +sys.argv = map(lambda arg: arg if not arg.startswith('test_') else 'default.' + arg, sys.argv) + if 'benchmark' not in str(sys.argv): # Tests @@ -280,8 +284,6 @@ if 'benchmark' not in str(sys.argv): self.do_run(src, 'hello, world!') def test_intvars(self): - Settings.I64_MODE = 0 # We do not support 64-bit addition etc. in mode 1 - src = ''' #include <stdio.h> int global = 20; @@ -509,6 +511,36 @@ if 'benchmark' not in str(sys.argv): def test_unaligned(self): if Settings.QUANTUM_SIZE == 1: return self.skip('No meaning to unaligned addresses in q1') + + src = r''' + #include<stdio.h> + + struct S { + double x; + int y; + }; + + int main() { + // the 64-bit value here will not always be 8-byte aligned + S s[3] = { {0x12a751f430142, 22}, {0x17a5c85bad144, 98}, {1, 1}}; + printf("*%d : %d : %d\n", sizeof(S), ((unsigned int)&s[0]) % 8 != ((unsigned int)&s[1]) % 8, + ((unsigned int)&s[1]) - ((unsigned int)&s[0])); + s[0].x++; + s[0].y++; + s[1].x++; + s[1].y++; + printf("%.1f,%d,%.1f,%d\n", s[0].x, s[0].y, s[1].x, s[1].y); + return 0; + } + ''' + + # TODO: A version of this with int64s as well + self.do_run(src, '*12 : 1 : 12\n328157500735811.0,23,416012775903557.0,99\n') + + return # TODO: continue to the next part here + + # Test for undefined behavior in C. This is not legitimate code, but does exist + if Settings.USE_TYPED_ARRAYS != 2: return self.skip('No meaning to unaligned addresses without t2') src = r''' @@ -693,7 +725,7 @@ if 'benchmark' not in str(sys.argv): #include <cmath> int main() { - printf("*%.2f,%.2f,%f,%f", M_PI, -M_PI, 1/0.0, -1/0.0); + printf("*%.2f,%.2f,%d", M_PI, -M_PI, (1/0.0) > 1e300); // could end up as infinity, or just a very very big number printf(",%d", finite(NAN) != 0); printf(",%d", finite(INFINITY) != 0); printf(",%d", finite(-INFINITY) != 0); @@ -706,7 +738,7 @@ if 'benchmark' not in str(sys.argv): return 0; } ''' - self.do_run(src, '*3.14,-3.14,inf,-inf,0,0,0,1,0,1,1,0*') + self.do_run(src, '*3.14,-3.14,1,0,0,0,1,0,1,1,0*') def test_math_hyperbolic(self): src = open(path_from_root('tests', 'hyperbolic', 'src.c'), 'r').read() @@ -1578,13 +1610,14 @@ if 'benchmark' not in str(sys.argv): def test_emscripten_api(self): #if Settings.MICRO_OPTS or Settings.RELOOP or Building.LLVM_OPTS: return self.skip('FIXME') - src = ''' + src = r''' #include <stdio.h> #include "emscripten.h" int main() { // EMSCRIPTEN_COMMENT("hello from the source"); emscripten_run_script("print('hello world' + '!')"); + printf("*%d*\n", emscripten_run_script_int("5*20")); return 0; } ''' @@ -1593,7 +1626,47 @@ if 'benchmark' not in str(sys.argv): src = open(filename, 'r').read() # TODO: restore this (see comment in emscripten.h) assert '// hello from the source' in src - self.do_run(src, 'hello world!', post_build=check) + self.do_run(src, 'hello world!\n*100*', post_build=check) + + def test_memorygrowth(self): + # With typed arrays in particular, it is dangerous to use more memory than TOTAL_MEMORY, + # since we then need to enlarge the heap(s). + src = r''' + #include <stdio.h> + #include <stdlib.h> + #include <string.h> + #include <assert.h> + #include "emscripten.h" + + int main() + { + char *buf1 = (char*)malloc(100); + char *data1 = "hello"; + memcpy(buf1, data1, strlen(data1)+1); + + float *buf2 = (float*)malloc(100); + float pie = 4.955; + memcpy(buf2, &pie, sizeof(float)); + + printf("*pre: %s,%.3f*\n", buf1, buf2[0]); + + int totalMemory = emscripten_run_script_int("TOTAL_MEMORY"); + char *buf3 = (char*)malloc(totalMemory+1); + char *buf4 = (char*)malloc(100); + float *buf5 = (float*)malloc(100); + //printf("totalMemory: %d bufs: %d,%d,%d,%d,%d\n", totalMemory, buf1, buf2, buf3, buf4, buf5); + assert((int)buf4 > (int)totalMemory && (int)buf5 > (int)totalMemory); + + printf("*%s,%.3f*\n", buf1, buf2[0]); // the old heap data should still be there + + memcpy(buf4, buf1, strlen(data1)+1); + memcpy(buf5, buf2, sizeof(float)); + printf("*%s,%.3f*\n", buf4, buf5[0]); // and the new heap space should work too + + return 0; + } + ''' + self.do_run(src, '*pre: hello,4.955*\n*hello,4.955*\n*hello,4.955*') def test_ssr(self): # struct self-ref src = ''' @@ -1964,7 +2037,6 @@ if 'benchmark' not in str(sys.argv): def test_time(self): # XXX Not sure what the right output is here. Looks like the test started failing with daylight savings changes. Modified it to pass again. - if Settings.USE_TYPED_ARRAYS == 2: return self.skip('Typed arrays = 2 truncate i64s') src = open(path_from_root('tests', 'time', 'src.c'), 'r').read() expected = open(path_from_root('tests', 'time', 'output.txt'), 'r').read() self.do_run(src, expected, @@ -2610,7 +2682,6 @@ if 'benchmark' not in str(sys.argv): self.do_run(src, re.sub(r'(^|\n)\s+', r'\1', expected)) def test_strtod(self): - if Settings.USE_TYPED_ARRAYS == 2: return self.skip('Typed arrays = 2 truncate doubles') src = r''' #include <stdio.h> #include <stdlib.h> @@ -2631,7 +2702,6 @@ if 'benchmark' not in str(sys.argv): printf("%g\n", strtod("1234567891234567890", &endptr)); printf("%g\n", strtod("1234567891234567890e+50", &endptr)); printf("%g\n", strtod("84e+220", &endptr)); - printf("%g\n", strtod("84e+420", &endptr)); printf("%g\n", strtod("123e-50", &endptr)); printf("%g\n", strtod("123e-250", &endptr)); printf("%g\n", strtod("123e-450", &endptr)); @@ -2639,6 +2709,7 @@ if 'benchmark' not in str(sys.argv): char str[] = " 12.34e56end"; printf("%g\n", strtod(str, &endptr)); printf("%d\n", endptr - str); + printf("%g\n", strtod("84e+420", &endptr)); return 0; } ''' @@ -2655,28 +2726,88 @@ if 'benchmark' not in str(sys.argv): 1.23457e+18 1.23457e+68 8.4e+221 - inf 1.23e-48 1.23e-248 0 1.234e+57 10 + inf ''' + self.do_run(src, re.sub(r'\n\s+', '\n', expected)) + def test_strtok(self): + src = r''' + #include<stdio.h> + #include<string.h> + + int main() { + char test[80], blah[80]; + char *sep = "\\/:;=-"; + char *word, *phrase, *brkt, *brkb; + + strcpy(test, "This;is.a:test:of=the/string\\tokenizer-function."); + + for (word = strtok_r(test, sep, &brkt); word; word = strtok_r(NULL, sep, &brkt)) { + strcpy(blah, "blah:blat:blab:blag"); + for (phrase = strtok_r(blah, sep, &brkb); phrase; phrase = strtok_r(NULL, sep, &brkb)) { + printf("at %s:%s\n", word, phrase); + } + } + return 1; + } + ''' + + expected = '''at This:blah +at This:blat +at This:blab +at This:blag +at is.a:blah +at is.a:blat +at is.a:blab +at is.a:blag +at test:blah +at test:blat +at test:blab +at test:blag +at of:blah +at of:blat +at of:blab +at of:blag +at the:blah +at the:blat +at the:blab +at the:blag +at string:blah +at string:blat +at string:blab +at string:blag +at tokenizer:blah +at tokenizer:blat +at tokenizer:blab +at tokenizer:blag +at function.:blah +at function.:blat +at function.:blab +at function.:blag +''' + self.do_run(src, expected) + def test_parseInt(self): - if Settings.USE_TYPED_ARRAYS != 0: return self.skip('Typed arrays truncate i64') + if Settings.QUANTUM_SIZE == 1: return self.skip('Q1 and I64_1 do not mix well yet') + Settings.I64_MODE = 1 # Necessary to prevent i64s being truncated into i32s, but we do still get doubling + # FIXME: The output here is wrong, due to double rounding of i64s! src = open(path_from_root('tests', 'parseInt', 'src.c'), 'r').read() - if Settings.I64_MODE == 0: - expected = open(path_from_root('tests', 'parseInt', 'output.txt'), 'r').read() - else: - expected = open(path_from_root('tests', 'parseInt', 'output_i64mode1.txt'), 'r').read() # some rounding issues, etc. + expected = open(path_from_root('tests', 'parseInt', 'output.txt'), 'r').read() self.do_run(src, expected) def test_printf(self): - if Settings.USE_TYPED_ARRAYS != 0: return self.skip('Typed arrays truncate i64') + if Settings.QUANTUM_SIZE == 1: return self.skip('Q1 and I64_1 do not mix well yet') + Settings.I64_MODE = 1 + self.banned_js_engines = [NODE_JS, V8_ENGINE] # SpiderMonkey and V8 do different things to float64 typed arrays, un-NaNing, etc. src = open(path_from_root('tests', 'printf', 'test.c'), 'r').read() - expected = open(path_from_root('tests', 'printf', 'output.txt'), 'r').read() + expected = [open(path_from_root('tests', 'printf', 'output.txt'), 'r').read(), + open(path_from_root('tests', 'printf', 'output_i64_1.txt'), 'r').read()] self.do_run(src, expected) def test_printf_types(self): @@ -2878,8 +3009,6 @@ if 'benchmark' not in str(sys.argv): self.do_run(src, re.sub('(^|\n)\s+', '\\1', expected), post_build=add_pre_run) def test_stat(self): - if Settings.I64_MODE == 1: return self.skip('TODO') - def add_pre_run(filename): src = open(filename, 'r').read().replace( '// {{PRE_RUN_ADDITIONS}}', @@ -3399,7 +3528,7 @@ if 'benchmark' not in str(sys.argv): self.do_run(src, 'Pfannkuchen(%d) = %d.' % (i,j), [str(i)], no_build=i>1) def test_raytrace(self): - if Settings.USE_TYPED_ARRAYS == 2: return self.skip('Relies on double values') + if Settings.USE_TYPED_ARRAYS == 2: return self.skip('Relies on double value rounding, extremely sensitive') src = open(path_from_root('tests', 'raytrace.cpp'), 'r').read().replace('double', 'float') output = open(path_from_root('tests', 'raytrace.ppm'), 'r').read() @@ -3579,8 +3708,6 @@ if 'benchmark' not in str(sys.argv): def test_the_bullet(self): # Called thus so it runs late in the alphabetical cycle... it is long if Building.LLVM_OPTS: Settings.SAFE_HEAP = 0 # Optimizations make it so we do not have debug info on the line we need to ignore - if Settings.USE_TYPED_ARRAYS == 2: return self.skip('We have slightly different rounding here for some reason. TODO: activate this') - # Note: this is also a good test of per-file and per-line changes (since we have multiple files, and correct specific lines) if Settings.SAFE_HEAP: # Ignore bitfield warnings @@ -3589,7 +3716,8 @@ if 'benchmark' not in str(sys.argv): 'btVoronoiSimplexSolver.h:42', 'btVoronoiSimplexSolver.h:43'] self.do_run(open(path_from_root('tests', 'bullet', 'Demos', 'HelloWorld', 'HelloWorld.cpp'), 'r').read(), - open(path_from_root('tests', 'bullet', 'output.txt'), 'r').read(), + [open(path_from_root('tests', 'bullet', 'output.txt'), 'r').read(), # different roundings + open(path_from_root('tests', 'bullet', 'output2.txt'), 'r').read()], libraries=[self.get_library('bullet', [os.path.join('src', '.libs', 'libBulletCollision.a.bc'), os.path.join('src', '.libs', 'libBulletDynamics.a.bc'), os.path.join('src', '.libs', 'libLinearMath.a.bc')], @@ -3598,30 +3726,12 @@ if 'benchmark' not in str(sys.argv): js_engines=[SPIDERMONKEY_ENGINE]) # V8 issue 1407 def test_poppler(self): - # llvm-link failure when using clang, LLVM bug 9498, still relevant? - if Settings.RELOOP or Building.LLVM_OPTS: return self.skip('TODO') - if Settings.USE_TYPED_ARRAYS == 2 or Settings.QUANTUM_SIZE == 1: return self.skip('TODO: Figure out and try to fix') - - Settings.USE_TYPED_ARRAYS = 0 # XXX bug - we fail with this FIXME + if not self.use_defaults: return self.skip('very slow, we only do this in default') Settings.SAFE_HEAP = 0 # Has variable object - Settings.CHECK_OVERFLOWS = 0 - + Settings.CORRECT_OVERFLOWS = 1 Settings.CORRECT_SIGNS = 1 - Settings.CORRECT_SIGNS_LINES = ['parseargs.cc:171', 'BuiltinFont.cc:64', 'NameToCharCode.cc:115', 'GooHash.cc:368', - 'Stream.h:469', 'PDFDoc.cc:1064', 'Lexer.cc:201', 'Splash.cc:1130', 'XRef.cc:997', - 'vector:714', 'Lexer.cc:259', 'Splash.cc:438', 'Splash.cc:532', 'GfxFont.cc:1152', - 'Gfx.cc:3838', 'Splash.cc:3162', 'Splash.cc:3163', 'Splash.cc:3164', 'Splash.cc:3153', - 'Splash.cc:3159', 'SplashBitmap.cc:80', 'SplashBitmap.cc:81', 'SplashBitmap.cc:82', - 'Splash.cc:809', 'Splash.cc:805', 'GooHash.cc:379', - # FreeType - 't1load.c:1850', 'psconv.c:104', 'psconv.c:185', 'psconv.c:366', 'psconv.c:399', - 'ftcalc.c:308', 't1parse.c:405', 'psconv.c:431', 'ftcalc.c:555', 't1objs.c:458', - 't1decode.c:595', 't1decode.c:606', 'pstables.h:4048', 'pstables.h:4055', 'pstables.h:4066', - 'pshglob.c:166', 'ftobjs.c:2548', 'ftgrays.c:1190', 'psmodule.c:116', 'psmodule.c:119', - 'psobjs.c:195', 'pshglob.c:165', 'ttload.c:694', 'ttmtx.c:195', 'sfobjs.c:957', - 'sfobjs.c:958', 'ftstream.c:369', 'ftstream.c:372', 'ttobjs.c:1007'] # And many more... Building.COMPILER_TEST_OPTS += [ '-I' + path_from_root('tests', 'libcxx', 'include'), # Avoid libstdc++ linking issue, see libcxx test @@ -3646,7 +3756,7 @@ if 'benchmark' not in str(sys.argv): FS.root.write = true; FS.ignorePermissions = false; run(); - print("Data: " + JSON.stringify(FS.root.contents['filename-1.ppm'].contents)); + print("Data: " + JSON.stringify(FS.root.contents['filename-1.ppm'].contents.map(function(x) { return unSign(x, 8) }))); ''' ) src.close() @@ -3670,10 +3780,10 @@ if 'benchmark' not in str(sys.argv): Building.link([freetype, poppler], combined) self.do_ll_run(combined, - lambda: map(ord, open(path_from_root('tests', 'poppler', 'ref.ppm'), 'r').read()).__str__().replace(' ', ''), - args='-scale-to 512 paper.pdf filename'.split(' '), - post_build=post) - #, build_ll_hook=self.do_autodebug) + map(ord, open(path_from_root('tests', 'poppler', 'ref.ppm'), 'r').read()).__str__().replace(' ', ''), + args='-scale-to 512 paper.pdf filename'.split(' '), + post_build=post) + #, build_ll_hook=self.do_autodebug) def test_openjpeg(self): if Settings.USE_TYPED_ARRAYS == 2: @@ -3696,6 +3806,8 @@ if 'benchmark' not in str(sys.argv): ) open(filename, 'w').write(src) + shutil.copy(path_from_root('tests', 'openjpeg', 'opj_config.h'), self.get_dir()) + lib = self.get_library('openjpeg', [os.path.join('bin', 'libopenjpeg.so.1.4.0.bc'), os.path.sep.join('codec/CMakeFiles/j2k_to_image.dir/index.c.o'.split('/')), @@ -3704,8 +3816,7 @@ if 'benchmark' not in str(sys.argv): os.path.sep.join('codec/CMakeFiles/j2k_to_image.dir/__/common/getopt.c.o'.split('/'))], configure=['cmake', '.'], #configure_args=['--enable-tiff=no', '--enable-jp3d=no', '--enable-png=no'], - make_args=[], # no -j 2, since parallel builds can fail - cache=False) # We need opj_config.h and other generated files, so cannot cache just the .bc + make_args=[]) # no -j 2, since parallel builds can fail # We use doubles in JS, so we get slightly different values than native code. So we # check our output by comparing the average pixel difference @@ -3756,7 +3867,7 @@ if 'benchmark' not in str(sys.argv): output_nicerizer=image_compare)#, build_ll_hook=self.do_autodebug) def test_python(self): - if Settings.QUANTUM_SIZE == 1 or Settings.USE_TYPED_ARRAYS == 2: return self.skip('TODO: make this work') + if Settings.QUANTUM_SIZE == 1: return self.skip('TODO: make this work') # Overflows in string_hash Settings.CORRECT_OVERFLOWS = 1 @@ -3902,8 +4013,6 @@ Block 0: ''', post_build=post1) # Part 2: old JS version - if Settings.USE_TYPED_ARRAYS == 2: return self.skip('LLVM opts inline out the inner func') - Settings.PROFILE = 1 Settings.INVOKE_RUN = 0 @@ -3950,7 +4059,7 @@ Block 0: ''', post_build=post1) ''') src.close() - self.do_run(src, ': __Z6inner1i (5000)\n*ok*', post_build=post) + self.do_run(src, ': __Z6inner1i (5000)\n', post_build=post) ### Integration tests @@ -4188,7 +4297,6 @@ Child2:9 def test_typeinfo(self): Settings.RUNTIME_TYPE_INFO = 1 if Settings.QUANTUM_SIZE != 4: return self.skip('We assume normal sizes in the output here') - if Settings.USE_TYPED_ARRAYS == 2: return self.skip('LLVM unsafe opts optimize out the type info') src = ''' #include<stdio.h> @@ -4277,8 +4385,8 @@ Child2:9 self.do_run(src, '*closured*\ndata: 100,1,50,25\n', post_build=post) def test_safe_heap(self): - if Settings.USE_TYPED_ARRAYS == 2: return self.skip('It is ok to violate the load-store assumption with TA2') if not Settings.SAFE_HEAP: return self.skip('We need SAFE_HEAP to test SAFE_HEAP') + if Settings.USE_TYPED_ARRAYS == 2: return self.skip('It is ok to violate the load-store assumption with TA2') if Building.LLVM_OPTS: return self.skip('LLVM can optimize away the intermediate |x|') src = ''' @@ -4457,8 +4565,6 @@ Child2:9 Settings.CHECK_SIGNS = 0 Settings.CHECK_OVERFLOWS = 0 - if Settings.USE_TYPED_ARRAYS == 2: return self.skip('LLVM opts optimize out the things we check') - # Signs src = ''' @@ -4579,37 +4685,37 @@ Child2:9 } ''' - Settings.CORRECT_ROUNDINGS = 0 - self.do_run(src.replace('TYPE', 'long long'), '*-3**2**-6**5*') # JS floor operations, always to the negative. This is an undetected error here! - self.do_run(src.replace('TYPE', 'int'), '*-2**2**-5**5*') # We get these right, since they are 32-bit and we can shortcut using the |0 trick - self.do_run(src.replace('TYPE', 'unsigned int'), '*-3**2**-6**5*') # We fail, since no fast shortcut for 32-bit unsigneds + if Settings.I64_MODE == 0: # the errors here are very specific to non-i64 mode 1 + Settings.CORRECT_ROUNDINGS = 0 + self.do_run(src.replace('TYPE', 'long long'), '*-3**2**-6**5*') # JS floor operations, always to the negative. This is an undetected error here! + self.do_run(src.replace('TYPE', 'int'), '*-2**2**-5**5*') # We get these right, since they are 32-bit and we can shortcut using the |0 trick + self.do_run(src.replace('TYPE', 'unsigned int'), '*-3**2**-6**5*') # We fail, since no fast shortcut for 32-bit unsigneds Settings.CORRECT_ROUNDINGS = 1 + Settings.CORRECT_SIGNS = 1 # To be correct here, we need sign corrections as well self.do_run(src.replace('TYPE', 'long long'), '*-2**2**-5**5*') # Correct self.do_run(src.replace('TYPE', 'int'), '*-2**2**-5**5*') # Correct - Settings.CORRECT_SIGNS = 1 # To be correct here, we need sign corrections as well self.do_run(src.replace('TYPE', 'unsigned int'), '*2147483645**2**-5**5*') # Correct - return Settings.CORRECT_SIGNS = 0 - Settings.CORRECT_ROUNDINGS = 2 - Settings.CORRECT_ROUNDINGS_LINES = ["src.cpp:13"] # Fix just the last mistake - self.do_run(src.replace('TYPE', 'long long'), '*-3**2**-5**5*') - self.do_run(src.replace('TYPE', 'int'), '*-2**2**-5**5*') # Here we are lucky and also get the first one right - self.do_run(src.replace('TYPE', 'unsigned int'), '*-3**2**-5**5*') # No such luck here + if Settings.I64_MODE == 0: # the errors here are very specific to non-i64 mode 1 + Settings.CORRECT_ROUNDINGS = 2 + Settings.CORRECT_ROUNDINGS_LINES = ["src.cpp:13"] # Fix just the last mistake + self.do_run(src.replace('TYPE', 'long long'), '*-3**2**-5**5*') + self.do_run(src.replace('TYPE', 'int'), '*-2**2**-5**5*') # Here we are lucky and also get the first one right + self.do_run(src.replace('TYPE', 'unsigned int'), '*-3**2**-5**5*') # No such luck here # And reverse the check with = 2 - Settings.CORRECT_ROUNDINGS = 3 - Settings.CORRECT_ROUNDINGS_LINES = ["src.cpp:999"] - self.do_run(src.replace('TYPE', 'long long'), '*-2**2**-5**5*') - self.do_run(src.replace('TYPE', 'int'), '*-2**2**-5**5*') - Settings.CORRECT_SIGNS = 1 # To be correct here, we need sign corrections as well - self.do_run(src.replace('TYPE', 'unsigned int'), '*2147483645**2**-5**5*') - Settings.CORRECT_SIGNS = 0 + if Settings.I64_MODE == 0: # the errors here are very specific to non-i64 mode 1 + Settings.CORRECT_ROUNDINGS = 3 + Settings.CORRECT_ROUNDINGS_LINES = ["src.cpp:999"] + self.do_run(src.replace('TYPE', 'long long'), '*-2**2**-5**5*') + self.do_run(src.replace('TYPE', 'int'), '*-2**2**-5**5*') + Settings.CORRECT_SIGNS = 1 # To be correct here, we need sign corrections as well + self.do_run(src.replace('TYPE', 'unsigned int'), '*2147483645**2**-5**5*') + Settings.CORRECT_SIGNS = 0 def test_pgo(self): - if Settings.USE_TYPED_ARRAYS == 2: return self.skip('LLVM opts optimize out the things we check') - Settings.PGO = Settings.CHECK_OVERFLOWS = Settings.CORRECT_OVERFLOWS = Settings.CHECK_SIGNS = Settings.CORRECT_SIGNS = 1 src = ''' @@ -4673,8 +4779,8 @@ Child2:9 ''' self.do_run(src, 'hello, world!\nExit Status: 118') - # Generate tests for all our compilers - def make_run(name, compiler, llvm_opts, embetter, quantum_size, typed_arrays): + # Generate tests for everything + def make_run(name=-1, compiler=-1, llvm_opts=0, embetter=0, quantum_size=0, typed_arrays=0, defaults=False): exec(''' class %s(T): def tearDown(self): @@ -4682,8 +4788,17 @@ class %s(T): def setUp(self): super(%s, self).setUp() - + + Building.COMPILER_TEST_OPTS = ['-g'] + os.chdir(self.get_dir()) # Ensure the directory exists and go there Building.COMPILER = %r + + self.use_defaults = %d + if self.use_defaults: + Settings.load_defaults() + Building.LLVM_OPTS = 0 + return + llvm_opts = %d # 1 is yes, 2 is yes and unsafe embetter = %d quantum_size = %d @@ -4712,40 +4827,40 @@ class %s(T): Settings.CATCH_EXIT_CODE = 0 Settings.TOTAL_MEMORY = Settings.FAST_MEMORY = None Settings.EMULATE_UNALIGNED_ACCESSES = Settings.USE_TYPED_ARRAYS == 2 and Building.LLVM_OPTS == 2 + Settings.DOUBLE_MODE = 1 if Settings.USE_TYPED_ARRAYS and Building.LLVM_OPTS == 0 else 0 if Settings.USE_TYPED_ARRAYS == 2: Settings.I64_MODE = 1 Settings.SAFE_HEAP = 1 # only checks for alignment problems, which is very important with unsafe opts else: Settings.I64_MODE = 0 - if Settings.QUANTUM_SIZE == 1 or Settings.USE_TYPED_ARRAYS == 2: + if Settings.USE_TYPED_ARRAYS != 2 or Building.LLVM_OPTS == 2: Settings.RELOOP = 0 # XXX Would be better to use this, but it isn't really what we test in these cases, and is very slow Building.pick_llvm_opts(3, safe=Building.LLVM_OPTS != 2) - Building.COMPILER_TEST_OPTS = ['-g'] - - os.chdir(self.get_dir()) # Ensure the directory exists and go there - TT = %s -''' % (fullname, fullname, fullname, compiler, llvm_opts, embetter, quantum_size, typed_arrays, fullname)) +''' % (fullname, fullname, fullname, compiler, defaults, llvm_opts, embetter, quantum_size, typed_arrays, fullname)) return TT - for name, compiler, quantum, embetter, typed_arrays, llvm_opts in [ - ('clang', CLANG, 1, 0, 0, 0), - ('clang', CLANG, 1, 0, 0, 1), - ('clang', CLANG, 4, 0, 0, 0), - ('clang', CLANG, 4, 0, 0, 1), - ('clang', CLANG, 1, 1, 1, 0), - ('clang', CLANG, 1, 1, 1, 1), - ('clang', CLANG, 4, 1, 1, 0), - ('clang', CLANG, 4, 1, 1, 1), - ('clang', CLANG, 4, 1, 2, 0), - ('clang', CLANG, 4, 1, 2, 1), - #('clang', CLANG, 4, 1, 2, 2), + # Make one run with the defaults + fullname = 'default' + exec(fullname + ' = make_run(compiler=CLANG, defaults=True)') + + # Make custom runs with various options + for compiler, quantum, embetter, typed_arrays, llvm_opts in [ + (CLANG, 1, 1, 0, 0), + (CLANG, 1, 1, 1, 1), + (CLANG, 4, 0, 0, 0), + (CLANG, 4, 0, 0, 1), + (CLANG, 4, 1, 1, 0), + (CLANG, 4, 1, 1, 1), + (CLANG, 4, 1, 2, 0), + (CLANG, 4, 1, 2, 1), + #(CLANG, 4, 1, 2, 2), ]: - fullname = '%s_%d_%d%s%s' % ( - name, llvm_opts, embetter, '' if quantum == 4 else '_q' + str(quantum), '' if typed_arrays in [0, 1] else '_t' + str(typed_arrays) + fullname = 's_%d_%d%s%s' % ( + llvm_opts, embetter, '' if quantum == 4 else '_q' + str(quantum), '' if typed_arrays in [0, 1] else '_t' + str(typed_arrays) ) exec('%s = make_run(%r,%r,%d,%d,%d,%d)' % (fullname, fullname, compiler, llvm_opts, embetter, quantum, typed_arrays)) @@ -4821,7 +4936,8 @@ else: print 'Benchmarking JS engine:', JS_ENGINE Building.COMPILER_TEST_OPTS = [] - POST_OPTIMIZATIONS = [['js-optimizer', 'loopOptimizer'], 'eliminator', 'closure', ['js-optimizer', 'unGlobalize', 'removeAssignsToUndefined', 'simplifyExpressions']] + # TODO: Use other js optimizer options, like remove assigns to undefined (seems to slow us down more than speed us up) + POST_OPTIMIZATIONS = [['js-optimizer', 'loopOptimizer'], 'eliminator', 'closure', ['js-optimizer', 'simplifyExpressions']] TEST_REPS = 10 TOTAL_TESTS = 7 @@ -4832,10 +4948,13 @@ else: class benchmark(RunnerCore): def setUp(self): + super(benchmark, self).setUp() + Settings.RELOOP = Settings.MICRO_OPTS = 1 Settings.USE_TYPED_ARRAYS = 1 Settings.QUANTUM_SIZE = 1 Settings.I64_MODE = 0 + Settings.DOUBLE_MODE = 0 Settings.ASSERTIONS = Settings.SAFE_HEAP = Settings.CHECK_OVERFLOWS = Settings.CORRECT_OVERFLOWS = Settings.CHECK_SIGNS = Settings.INIT_STACK = Settings.PGO = Settings.RUNTIME_TYPE_INFO = 0 Settings.INVOKE_RUN = 1 Settings.CORRECT_SIGNS = 0 @@ -4849,8 +4968,6 @@ else: Building.LLVM_OPTS = 1 if Settings.USE_TYPED_ARRAYS != 2 else 2 Building.pick_llvm_opts(2, safe=Building.LLVM_OPTS != 2) - super(benchmark, self).setUp() - def print_stats(self, times, native_times, last=False): mean = sum(times)/len(times) squared_times = map(lambda x: x*x, times) diff --git a/tests/stat/src.c b/tests/stat/src.c index bdf27ca2..dc5a0198 100644 --- a/tests/stat/src.c +++ b/tests/stat/src.c @@ -15,11 +15,11 @@ int main() { printf("--stat FOLDER--\n"); printf("ret: %d\n", stat("/test", &s)); printf("errno: %d\n", errno); - printf("st_dev: %llu\n", s.st_dev); + printf("st_dev: %lu\n", s.st_dev); printf("st_ino: %lu\n", s.st_ino); printf("st_mode: 0%o\n", s.st_mode); printf("st_nlink: %d\n", s.st_nlink); - printf("st_rdev: %llu\n", s.st_rdev); + printf("st_rdev: %lu\n", s.st_rdev); printf("st_size: %ld\n", s.st_size); printf("st_atime: %ld\n", s.st_atime); printf("st_mtime: %ld\n", s.st_mtime); @@ -38,11 +38,11 @@ int main() { printf("\n--stat FILE--\n"); printf("ret: %d\n", stat("/test/file", &s)); printf("errno: %d\n", errno); - printf("st_dev: %llu\n", s.st_dev); + printf("st_dev: %lu\n", s.st_dev); printf("st_ino: %lu\n", s.st_ino); printf("st_mode: 0%o\n", s.st_mode); printf("st_nlink: %d\n", s.st_nlink); - printf("st_rdev: %llu\n", s.st_rdev); + printf("st_rdev: %lu\n", s.st_rdev); printf("st_size: %ld\n", s.st_size); printf("st_atime: %ld\n", s.st_atime); printf("st_mtime: %ld\n", s.st_mtime); @@ -61,11 +61,11 @@ int main() { printf("\n--stat DEVICE--\n"); printf("ret: %d\n", stat("/test/device", &s)); printf("errno: %d\n", errno); - printf("st_dev: %llu\n", s.st_dev); + printf("st_dev: %lu\n", s.st_dev); printf("st_ino: %lu\n", s.st_ino); printf("st_mode: 0%o\n", s.st_mode); printf("st_nlink: %d\n", s.st_nlink); - printf("st_rdev: %llu\n", s.st_rdev); + printf("st_rdev: %lu\n", s.st_rdev); printf("st_size: %ld\n", s.st_size); printf("st_atime: %ld\n", s.st_atime); printf("st_mtime: %ld\n", s.st_mtime); @@ -84,11 +84,11 @@ int main() { printf("\n--stat LINK--\n"); printf("ret: %d\n", stat("/test/link", &s)); printf("errno: %d\n", errno); - printf("st_dev: %llu\n", s.st_dev); + printf("st_dev: %lu\n", s.st_dev); printf("st_ino: %lu\n", s.st_ino); printf("st_mode: 0%o\n", s.st_mode); printf("st_nlink: %d\n", s.st_nlink); - printf("st_rdev: %llu\n", s.st_rdev); + printf("st_rdev: %lu\n", s.st_rdev); printf("st_size: %ld\n", s.st_size); printf("st_atime: %ld\n", s.st_atime); printf("st_mtime: %ld\n", s.st_mtime); @@ -107,11 +107,11 @@ int main() { printf("\n--lstat LINK--\n"); printf("ret: %d\n", lstat("/test/link", &s)); printf("errno: %d\n", errno); - printf("st_dev: %llu\n", s.st_dev); + printf("st_dev: %lu\n", s.st_dev); printf("st_ino: %lu\n", s.st_ino); printf("st_mode: 0%o\n", s.st_mode); printf("st_nlink: %d\n", s.st_nlink); - printf("st_rdev: %llu\n", s.st_rdev); + printf("st_rdev: %lu\n", s.st_rdev); printf("st_size: %ld\n", s.st_size); printf("st_atime: %ld\n", s.st_atime); printf("st_mtime: %ld\n", s.st_mtime); @@ -130,11 +130,11 @@ int main() { printf("\n--fstat FILE--\n"); printf("ret: %d\n", fstat(open("/test/file", O_RDONLY, 0777), &s)); printf("errno: %d\n", errno); - printf("st_dev: %llu\n", s.st_dev); + printf("st_dev: %lu\n", s.st_dev); printf("st_ino: %lu\n", s.st_ino); printf("st_mode: 0%o\n", s.st_mode); printf("st_nlink: %d\n", s.st_nlink); - printf("st_rdev: %llu\n", s.st_rdev); + printf("st_rdev: %lu\n", s.st_rdev); printf("st_size: %ld\n", s.st_size); printf("st_atime: %ld\n", s.st_atime); printf("st_mtime: %ld\n", s.st_mtime); diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index e889c7a3..d22de39c 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -193,6 +193,11 @@ function unGlobalize(ast) { // - and in library/shell code too! - we should never rely on // undefined being assigned. So we can simply remove those assignments. // +// Note: An inlined function that kept a large value referenced, may +// keep that references when inlined, if we remove the setting to +// undefined. This is not dangerous in compiled code, but might be +// in supporting code (for example, holding on to the HEAP when copying). +// // This pass assumes that unGlobalize has been run, so undefined // is now explicit. function removeAssignsToUndefined(ast) { diff --git a/tools/shared.py b/tools/shared.py index 632cf633..0aead08a 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -144,11 +144,22 @@ def read_pgo_data(filename): 'overflows_lines': overflows_lines } -# Settings - -class Dummy: pass - -Settings = Dummy() # A global singleton. Not pretty, but nicer than passing |, settings| everywhere +# Settings. A global singleton. Not pretty, but nicer than passing |, settings| everywhere + +class Settings: + @classmethod + def reset(self): + global Settings + class Settings2: + reset = Settings.reset + load_defaults = Settings.load_defaults + Settings = Settings2 + + @classmethod + def load_defaults(self): + ''' Load the JS settings into Python ''' + settings = open(path_from_root('src', 'settings.js')).read().replace('var ', 'Settings.').replace('//', '#') + exec(settings) # Building |