Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/embedpre.../assets/pdf/build
File: pdf.worker.js
return {
[22000] Fix | Delete
glyphs: cff.charStrings.objects,
[22001] Fix | Delete
subrs: cff.topDict.privateDict?.subrsIndex?.objects,
[22002] Fix | Delete
gsubrs: cff.globalSubrIndex?.objects,
[22003] Fix | Delete
isCFFCIDFont: cff.isCIDFont,
[22004] Fix | Delete
fdSelect: cff.fdSelect,
[22005] Fix | Delete
fdArray: cff.fdArray
[22006] Fix | Delete
};
[22007] Fix | Delete
}
[22008] Fix | Delete
function parseGlyfTable(glyf, loca, isGlyphLocationsLong) {
[22009] Fix | Delete
let itemSize, itemDecode;
[22010] Fix | Delete
if (isGlyphLocationsLong) {
[22011] Fix | Delete
itemSize = 4;
[22012] Fix | Delete
itemDecode = getUint32;
[22013] Fix | Delete
} else {
[22014] Fix | Delete
itemSize = 2;
[22015] Fix | Delete
itemDecode = (data, offset) => 2 * getUint16(data, offset);
[22016] Fix | Delete
}
[22017] Fix | Delete
const glyphs = [];
[22018] Fix | Delete
let startOffset = itemDecode(loca, 0);
[22019] Fix | Delete
for (let j = itemSize; j < loca.length; j += itemSize) {
[22020] Fix | Delete
const endOffset = itemDecode(loca, j);
[22021] Fix | Delete
glyphs.push(glyf.subarray(startOffset, endOffset));
[22022] Fix | Delete
startOffset = endOffset;
[22023] Fix | Delete
}
[22024] Fix | Delete
return glyphs;
[22025] Fix | Delete
}
[22026] Fix | Delete
function lookupCmap(ranges, unicode) {
[22027] Fix | Delete
const code = unicode.codePointAt(0);
[22028] Fix | Delete
let gid = 0,
[22029] Fix | Delete
l = 0,
[22030] Fix | Delete
r = ranges.length - 1;
[22031] Fix | Delete
while (l < r) {
[22032] Fix | Delete
const c = l + r + 1 >> 1;
[22033] Fix | Delete
if (code < ranges[c].start) {
[22034] Fix | Delete
r = c - 1;
[22035] Fix | Delete
} else {
[22036] Fix | Delete
l = c;
[22037] Fix | Delete
}
[22038] Fix | Delete
}
[22039] Fix | Delete
if (ranges[l].start <= code && code <= ranges[l].end) {
[22040] Fix | Delete
gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xffff;
[22041] Fix | Delete
}
[22042] Fix | Delete
return {
[22043] Fix | Delete
charCode: code,
[22044] Fix | Delete
glyphId: gid
[22045] Fix | Delete
};
[22046] Fix | Delete
}
[22047] Fix | Delete
function compileGlyf(code, cmds, font) {
[22048] Fix | Delete
function moveTo(x, y) {
[22049] Fix | Delete
cmds.add(FontRenderOps.MOVE_TO, [x, y]);
[22050] Fix | Delete
}
[22051] Fix | Delete
function lineTo(x, y) {
[22052] Fix | Delete
cmds.add(FontRenderOps.LINE_TO, [x, y]);
[22053] Fix | Delete
}
[22054] Fix | Delete
function quadraticCurveTo(xa, ya, x, y) {
[22055] Fix | Delete
cmds.add(FontRenderOps.QUADRATIC_CURVE_TO, [xa, ya, x, y]);
[22056] Fix | Delete
}
[22057] Fix | Delete
let i = 0;
[22058] Fix | Delete
const numberOfContours = getInt16(code, i);
[22059] Fix | Delete
let flags;
[22060] Fix | Delete
let x = 0,
[22061] Fix | Delete
y = 0;
[22062] Fix | Delete
i += 10;
[22063] Fix | Delete
if (numberOfContours < 0) {
[22064] Fix | Delete
do {
[22065] Fix | Delete
flags = getUint16(code, i);
[22066] Fix | Delete
const glyphIndex = getUint16(code, i + 2);
[22067] Fix | Delete
i += 4;
[22068] Fix | Delete
let arg1, arg2;
[22069] Fix | Delete
if (flags & 0x01) {
[22070] Fix | Delete
if (flags & 0x02) {
[22071] Fix | Delete
arg1 = getInt16(code, i);
[22072] Fix | Delete
arg2 = getInt16(code, i + 2);
[22073] Fix | Delete
} else {
[22074] Fix | Delete
arg1 = getUint16(code, i);
[22075] Fix | Delete
arg2 = getUint16(code, i + 2);
[22076] Fix | Delete
}
[22077] Fix | Delete
i += 4;
[22078] Fix | Delete
} else if (flags & 0x02) {
[22079] Fix | Delete
arg1 = getInt8(code, i++);
[22080] Fix | Delete
arg2 = getInt8(code, i++);
[22081] Fix | Delete
} else {
[22082] Fix | Delete
arg1 = code[i++];
[22083] Fix | Delete
arg2 = code[i++];
[22084] Fix | Delete
}
[22085] Fix | Delete
if (flags & 0x02) {
[22086] Fix | Delete
x = arg1;
[22087] Fix | Delete
y = arg2;
[22088] Fix | Delete
} else {
[22089] Fix | Delete
x = 0;
[22090] Fix | Delete
y = 0;
[22091] Fix | Delete
}
[22092] Fix | Delete
let scaleX = 1,
[22093] Fix | Delete
scaleY = 1,
[22094] Fix | Delete
scale01 = 0,
[22095] Fix | Delete
scale10 = 0;
[22096] Fix | Delete
if (flags & 0x08) {
[22097] Fix | Delete
scaleX = scaleY = getFloat214(code, i);
[22098] Fix | Delete
i += 2;
[22099] Fix | Delete
} else if (flags & 0x40) {
[22100] Fix | Delete
scaleX = getFloat214(code, i);
[22101] Fix | Delete
scaleY = getFloat214(code, i + 2);
[22102] Fix | Delete
i += 4;
[22103] Fix | Delete
} else if (flags & 0x80) {
[22104] Fix | Delete
scaleX = getFloat214(code, i);
[22105] Fix | Delete
scale01 = getFloat214(code, i + 2);
[22106] Fix | Delete
scale10 = getFloat214(code, i + 4);
[22107] Fix | Delete
scaleY = getFloat214(code, i + 6);
[22108] Fix | Delete
i += 8;
[22109] Fix | Delete
}
[22110] Fix | Delete
const subglyph = font.glyphs[glyphIndex];
[22111] Fix | Delete
if (subglyph) {
[22112] Fix | Delete
cmds.add(FontRenderOps.SAVE);
[22113] Fix | Delete
cmds.add(FontRenderOps.TRANSFORM, [scaleX, scale01, scale10, scaleY, x, y]);
[22114] Fix | Delete
if (!(flags & 0x02)) {}
[22115] Fix | Delete
compileGlyf(subglyph, cmds, font);
[22116] Fix | Delete
cmds.add(FontRenderOps.RESTORE);
[22117] Fix | Delete
}
[22118] Fix | Delete
} while (flags & 0x20);
[22119] Fix | Delete
} else {
[22120] Fix | Delete
const endPtsOfContours = [];
[22121] Fix | Delete
let j, jj;
[22122] Fix | Delete
for (j = 0; j < numberOfContours; j++) {
[22123] Fix | Delete
endPtsOfContours.push(getUint16(code, i));
[22124] Fix | Delete
i += 2;
[22125] Fix | Delete
}
[22126] Fix | Delete
const instructionLength = getUint16(code, i);
[22127] Fix | Delete
i += 2 + instructionLength;
[22128] Fix | Delete
const numberOfPoints = endPtsOfContours.at(-1) + 1;
[22129] Fix | Delete
const points = [];
[22130] Fix | Delete
while (points.length < numberOfPoints) {
[22131] Fix | Delete
flags = code[i++];
[22132] Fix | Delete
let repeat = 1;
[22133] Fix | Delete
if (flags & 0x08) {
[22134] Fix | Delete
repeat += code[i++];
[22135] Fix | Delete
}
[22136] Fix | Delete
while (repeat-- > 0) {
[22137] Fix | Delete
points.push({
[22138] Fix | Delete
flags
[22139] Fix | Delete
});
[22140] Fix | Delete
}
[22141] Fix | Delete
}
[22142] Fix | Delete
for (j = 0; j < numberOfPoints; j++) {
[22143] Fix | Delete
switch (points[j].flags & 0x12) {
[22144] Fix | Delete
case 0x00:
[22145] Fix | Delete
x += getInt16(code, i);
[22146] Fix | Delete
i += 2;
[22147] Fix | Delete
break;
[22148] Fix | Delete
case 0x02:
[22149] Fix | Delete
x -= code[i++];
[22150] Fix | Delete
break;
[22151] Fix | Delete
case 0x12:
[22152] Fix | Delete
x += code[i++];
[22153] Fix | Delete
break;
[22154] Fix | Delete
}
[22155] Fix | Delete
points[j].x = x;
[22156] Fix | Delete
}
[22157] Fix | Delete
for (j = 0; j < numberOfPoints; j++) {
[22158] Fix | Delete
switch (points[j].flags & 0x24) {
[22159] Fix | Delete
case 0x00:
[22160] Fix | Delete
y += getInt16(code, i);
[22161] Fix | Delete
i += 2;
[22162] Fix | Delete
break;
[22163] Fix | Delete
case 0x04:
[22164] Fix | Delete
y -= code[i++];
[22165] Fix | Delete
break;
[22166] Fix | Delete
case 0x24:
[22167] Fix | Delete
y += code[i++];
[22168] Fix | Delete
break;
[22169] Fix | Delete
}
[22170] Fix | Delete
points[j].y = y;
[22171] Fix | Delete
}
[22172] Fix | Delete
let startPoint = 0;
[22173] Fix | Delete
for (i = 0; i < numberOfContours; i++) {
[22174] Fix | Delete
const endPoint = endPtsOfContours[i];
[22175] Fix | Delete
const contour = points.slice(startPoint, endPoint + 1);
[22176] Fix | Delete
if (contour[0].flags & 1) {
[22177] Fix | Delete
contour.push(contour[0]);
[22178] Fix | Delete
} else if (contour.at(-1).flags & 1) {
[22179] Fix | Delete
contour.unshift(contour.at(-1));
[22180] Fix | Delete
} else {
[22181] Fix | Delete
const p = {
[22182] Fix | Delete
flags: 1,
[22183] Fix | Delete
x: (contour[0].x + contour.at(-1).x) / 2,
[22184] Fix | Delete
y: (contour[0].y + contour.at(-1).y) / 2
[22185] Fix | Delete
};
[22186] Fix | Delete
contour.unshift(p);
[22187] Fix | Delete
contour.push(p);
[22188] Fix | Delete
}
[22189] Fix | Delete
moveTo(contour[0].x, contour[0].y);
[22190] Fix | Delete
for (j = 1, jj = contour.length; j < jj; j++) {
[22191] Fix | Delete
if (contour[j].flags & 1) {
[22192] Fix | Delete
lineTo(contour[j].x, contour[j].y);
[22193] Fix | Delete
} else if (contour[j + 1].flags & 1) {
[22194] Fix | Delete
quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y);
[22195] Fix | Delete
j++;
[22196] Fix | Delete
} else {
[22197] Fix | Delete
quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2);
[22198] Fix | Delete
}
[22199] Fix | Delete
}
[22200] Fix | Delete
startPoint = endPoint + 1;
[22201] Fix | Delete
}
[22202] Fix | Delete
}
[22203] Fix | Delete
}
[22204] Fix | Delete
function compileCharString(charStringCode, cmds, font, glyphId) {
[22205] Fix | Delete
function moveTo(x, y) {
[22206] Fix | Delete
cmds.add(FontRenderOps.MOVE_TO, [x, y]);
[22207] Fix | Delete
}
[22208] Fix | Delete
function lineTo(x, y) {
[22209] Fix | Delete
cmds.add(FontRenderOps.LINE_TO, [x, y]);
[22210] Fix | Delete
}
[22211] Fix | Delete
function bezierCurveTo(x1, y1, x2, y2, x, y) {
[22212] Fix | Delete
cmds.add(FontRenderOps.BEZIER_CURVE_TO, [x1, y1, x2, y2, x, y]);
[22213] Fix | Delete
}
[22214] Fix | Delete
const stack = [];
[22215] Fix | Delete
let x = 0,
[22216] Fix | Delete
y = 0;
[22217] Fix | Delete
let stems = 0;
[22218] Fix | Delete
function parse(code) {
[22219] Fix | Delete
let i = 0;
[22220] Fix | Delete
while (i < code.length) {
[22221] Fix | Delete
let stackClean = false;
[22222] Fix | Delete
let v = code[i++];
[22223] Fix | Delete
let xa, xb, ya, yb, y1, y2, y3, n, subrCode;
[22224] Fix | Delete
switch (v) {
[22225] Fix | Delete
case 1:
[22226] Fix | Delete
stems += stack.length >> 1;
[22227] Fix | Delete
stackClean = true;
[22228] Fix | Delete
break;
[22229] Fix | Delete
case 3:
[22230] Fix | Delete
stems += stack.length >> 1;
[22231] Fix | Delete
stackClean = true;
[22232] Fix | Delete
break;
[22233] Fix | Delete
case 4:
[22234] Fix | Delete
y += stack.pop();
[22235] Fix | Delete
moveTo(x, y);
[22236] Fix | Delete
stackClean = true;
[22237] Fix | Delete
break;
[22238] Fix | Delete
case 5:
[22239] Fix | Delete
while (stack.length > 0) {
[22240] Fix | Delete
x += stack.shift();
[22241] Fix | Delete
y += stack.shift();
[22242] Fix | Delete
lineTo(x, y);
[22243] Fix | Delete
}
[22244] Fix | Delete
break;
[22245] Fix | Delete
case 6:
[22246] Fix | Delete
while (stack.length > 0) {
[22247] Fix | Delete
x += stack.shift();
[22248] Fix | Delete
lineTo(x, y);
[22249] Fix | Delete
if (stack.length === 0) {
[22250] Fix | Delete
break;
[22251] Fix | Delete
}
[22252] Fix | Delete
y += stack.shift();
[22253] Fix | Delete
lineTo(x, y);
[22254] Fix | Delete
}
[22255] Fix | Delete
break;
[22256] Fix | Delete
case 7:
[22257] Fix | Delete
while (stack.length > 0) {
[22258] Fix | Delete
y += stack.shift();
[22259] Fix | Delete
lineTo(x, y);
[22260] Fix | Delete
if (stack.length === 0) {
[22261] Fix | Delete
break;
[22262] Fix | Delete
}
[22263] Fix | Delete
x += stack.shift();
[22264] Fix | Delete
lineTo(x, y);
[22265] Fix | Delete
}
[22266] Fix | Delete
break;
[22267] Fix | Delete
case 8:
[22268] Fix | Delete
while (stack.length > 0) {
[22269] Fix | Delete
xa = x + stack.shift();
[22270] Fix | Delete
ya = y + stack.shift();
[22271] Fix | Delete
xb = xa + stack.shift();
[22272] Fix | Delete
yb = ya + stack.shift();
[22273] Fix | Delete
x = xb + stack.shift();
[22274] Fix | Delete
y = yb + stack.shift();
[22275] Fix | Delete
bezierCurveTo(xa, ya, xb, yb, x, y);
[22276] Fix | Delete
}
[22277] Fix | Delete
break;
[22278] Fix | Delete
case 10:
[22279] Fix | Delete
n = stack.pop();
[22280] Fix | Delete
subrCode = null;
[22281] Fix | Delete
if (font.isCFFCIDFont) {
[22282] Fix | Delete
const fdIndex = font.fdSelect.getFDIndex(glyphId);
[22283] Fix | Delete
if (fdIndex >= 0 && fdIndex < font.fdArray.length) {
[22284] Fix | Delete
const fontDict = font.fdArray[fdIndex];
[22285] Fix | Delete
let subrs;
[22286] Fix | Delete
if (fontDict.privateDict?.subrsIndex) {
[22287] Fix | Delete
subrs = fontDict.privateDict.subrsIndex.objects;
[22288] Fix | Delete
}
[22289] Fix | Delete
if (subrs) {
[22290] Fix | Delete
n += getSubroutineBias(subrs);
[22291] Fix | Delete
subrCode = subrs[n];
[22292] Fix | Delete
}
[22293] Fix | Delete
} else {
[22294] Fix | Delete
warn("Invalid fd index for glyph index.");
[22295] Fix | Delete
}
[22296] Fix | Delete
} else {
[22297] Fix | Delete
subrCode = font.subrs[n + font.subrsBias];
[22298] Fix | Delete
}
[22299] Fix | Delete
if (subrCode) {
[22300] Fix | Delete
parse(subrCode);
[22301] Fix | Delete
}
[22302] Fix | Delete
break;
[22303] Fix | Delete
case 11:
[22304] Fix | Delete
return;
[22305] Fix | Delete
case 12:
[22306] Fix | Delete
v = code[i++];
[22307] Fix | Delete
switch (v) {
[22308] Fix | Delete
case 34:
[22309] Fix | Delete
xa = x + stack.shift();
[22310] Fix | Delete
xb = xa + stack.shift();
[22311] Fix | Delete
y1 = y + stack.shift();
[22312] Fix | Delete
x = xb + stack.shift();
[22313] Fix | Delete
bezierCurveTo(xa, y, xb, y1, x, y1);
[22314] Fix | Delete
xa = x + stack.shift();
[22315] Fix | Delete
xb = xa + stack.shift();
[22316] Fix | Delete
x = xb + stack.shift();
[22317] Fix | Delete
bezierCurveTo(xa, y1, xb, y, x, y);
[22318] Fix | Delete
break;
[22319] Fix | Delete
case 35:
[22320] Fix | Delete
xa = x + stack.shift();
[22321] Fix | Delete
ya = y + stack.shift();
[22322] Fix | Delete
xb = xa + stack.shift();
[22323] Fix | Delete
yb = ya + stack.shift();
[22324] Fix | Delete
x = xb + stack.shift();
[22325] Fix | Delete
y = yb + stack.shift();
[22326] Fix | Delete
bezierCurveTo(xa, ya, xb, yb, x, y);
[22327] Fix | Delete
xa = x + stack.shift();
[22328] Fix | Delete
ya = y + stack.shift();
[22329] Fix | Delete
xb = xa + stack.shift();
[22330] Fix | Delete
yb = ya + stack.shift();
[22331] Fix | Delete
x = xb + stack.shift();
[22332] Fix | Delete
y = yb + stack.shift();
[22333] Fix | Delete
bezierCurveTo(xa, ya, xb, yb, x, y);
[22334] Fix | Delete
stack.pop();
[22335] Fix | Delete
break;
[22336] Fix | Delete
case 36:
[22337] Fix | Delete
xa = x + stack.shift();
[22338] Fix | Delete
y1 = y + stack.shift();
[22339] Fix | Delete
xb = xa + stack.shift();
[22340] Fix | Delete
y2 = y1 + stack.shift();
[22341] Fix | Delete
x = xb + stack.shift();
[22342] Fix | Delete
bezierCurveTo(xa, y1, xb, y2, x, y2);
[22343] Fix | Delete
xa = x + stack.shift();
[22344] Fix | Delete
xb = xa + stack.shift();
[22345] Fix | Delete
y3 = y2 + stack.shift();
[22346] Fix | Delete
x = xb + stack.shift();
[22347] Fix | Delete
bezierCurveTo(xa, y2, xb, y3, x, y);
[22348] Fix | Delete
break;
[22349] Fix | Delete
case 37:
[22350] Fix | Delete
const x0 = x,
[22351] Fix | Delete
y0 = y;
[22352] Fix | Delete
xa = x + stack.shift();
[22353] Fix | Delete
ya = y + stack.shift();
[22354] Fix | Delete
xb = xa + stack.shift();
[22355] Fix | Delete
yb = ya + stack.shift();
[22356] Fix | Delete
x = xb + stack.shift();
[22357] Fix | Delete
y = yb + stack.shift();
[22358] Fix | Delete
bezierCurveTo(xa, ya, xb, yb, x, y);
[22359] Fix | Delete
xa = x + stack.shift();
[22360] Fix | Delete
ya = y + stack.shift();
[22361] Fix | Delete
xb = xa + stack.shift();
[22362] Fix | Delete
yb = ya + stack.shift();
[22363] Fix | Delete
x = xb;
[22364] Fix | Delete
y = yb;
[22365] Fix | Delete
if (Math.abs(x - x0) > Math.abs(y - y0)) {
[22366] Fix | Delete
x += stack.shift();
[22367] Fix | Delete
} else {
[22368] Fix | Delete
y += stack.shift();
[22369] Fix | Delete
}
[22370] Fix | Delete
bezierCurveTo(xa, ya, xb, yb, x, y);
[22371] Fix | Delete
break;
[22372] Fix | Delete
default:
[22373] Fix | Delete
throw new FormatError(`unknown operator: 12 ${v}`);
[22374] Fix | Delete
}
[22375] Fix | Delete
break;
[22376] Fix | Delete
case 14:
[22377] Fix | Delete
if (stack.length >= 4) {
[22378] Fix | Delete
const achar = stack.pop();
[22379] Fix | Delete
const bchar = stack.pop();
[22380] Fix | Delete
y = stack.pop();
[22381] Fix | Delete
x = stack.pop();
[22382] Fix | Delete
cmds.add(FontRenderOps.SAVE);
[22383] Fix | Delete
cmds.add(FontRenderOps.TRANSLATE, [x, y]);
[22384] Fix | Delete
let cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]]));
[22385] Fix | Delete
compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);
[22386] Fix | Delete
cmds.add(FontRenderOps.RESTORE);
[22387] Fix | Delete
cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]]));
[22388] Fix | Delete
compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);
[22389] Fix | Delete
}
[22390] Fix | Delete
return;
[22391] Fix | Delete
case 18:
[22392] Fix | Delete
stems += stack.length >> 1;
[22393] Fix | Delete
stackClean = true;
[22394] Fix | Delete
break;
[22395] Fix | Delete
case 19:
[22396] Fix | Delete
stems += stack.length >> 1;
[22397] Fix | Delete
i += stems + 7 >> 3;
[22398] Fix | Delete
stackClean = true;
[22399] Fix | Delete
break;
[22400] Fix | Delete
case 20:
[22401] Fix | Delete
stems += stack.length >> 1;
[22402] Fix | Delete
i += stems + 7 >> 3;
[22403] Fix | Delete
stackClean = true;
[22404] Fix | Delete
break;
[22405] Fix | Delete
case 21:
[22406] Fix | Delete
y += stack.pop();
[22407] Fix | Delete
x += stack.pop();
[22408] Fix | Delete
moveTo(x, y);
[22409] Fix | Delete
stackClean = true;
[22410] Fix | Delete
break;
[22411] Fix | Delete
case 22:
[22412] Fix | Delete
x += stack.pop();
[22413] Fix | Delete
moveTo(x, y);
[22414] Fix | Delete
stackClean = true;
[22415] Fix | Delete
break;
[22416] Fix | Delete
case 23:
[22417] Fix | Delete
stems += stack.length >> 1;
[22418] Fix | Delete
stackClean = true;
[22419] Fix | Delete
break;
[22420] Fix | Delete
case 24:
[22421] Fix | Delete
while (stack.length > 2) {
[22422] Fix | Delete
xa = x + stack.shift();
[22423] Fix | Delete
ya = y + stack.shift();
[22424] Fix | Delete
xb = xa + stack.shift();
[22425] Fix | Delete
yb = ya + stack.shift();
[22426] Fix | Delete
x = xb + stack.shift();
[22427] Fix | Delete
y = yb + stack.shift();
[22428] Fix | Delete
bezierCurveTo(xa, ya, xb, yb, x, y);
[22429] Fix | Delete
}
[22430] Fix | Delete
x += stack.shift();
[22431] Fix | Delete
y += stack.shift();
[22432] Fix | Delete
lineTo(x, y);
[22433] Fix | Delete
break;
[22434] Fix | Delete
case 25:
[22435] Fix | Delete
while (stack.length > 6) {
[22436] Fix | Delete
x += stack.shift();
[22437] Fix | Delete
y += stack.shift();
[22438] Fix | Delete
lineTo(x, y);
[22439] Fix | Delete
}
[22440] Fix | Delete
xa = x + stack.shift();
[22441] Fix | Delete
ya = y + stack.shift();
[22442] Fix | Delete
xb = xa + stack.shift();
[22443] Fix | Delete
yb = ya + stack.shift();
[22444] Fix | Delete
x = xb + stack.shift();
[22445] Fix | Delete
y = yb + stack.shift();
[22446] Fix | Delete
bezierCurveTo(xa, ya, xb, yb, x, y);
[22447] Fix | Delete
break;
[22448] Fix | Delete
case 26:
[22449] Fix | Delete
if (stack.length % 2) {
[22450] Fix | Delete
x += stack.shift();
[22451] Fix | Delete
}
[22452] Fix | Delete
while (stack.length > 0) {
[22453] Fix | Delete
xa = x;
[22454] Fix | Delete
ya = y + stack.shift();
[22455] Fix | Delete
xb = xa + stack.shift();
[22456] Fix | Delete
yb = ya + stack.shift();
[22457] Fix | Delete
x = xb;
[22458] Fix | Delete
y = yb + stack.shift();
[22459] Fix | Delete
bezierCurveTo(xa, ya, xb, yb, x, y);
[22460] Fix | Delete
}
[22461] Fix | Delete
break;
[22462] Fix | Delete
case 27:
[22463] Fix | Delete
if (stack.length % 2) {
[22464] Fix | Delete
y += stack.shift();
[22465] Fix | Delete
}
[22466] Fix | Delete
while (stack.length > 0) {
[22467] Fix | Delete
xa = x + stack.shift();
[22468] Fix | Delete
ya = y;
[22469] Fix | Delete
xb = xa + stack.shift();
[22470] Fix | Delete
yb = ya + stack.shift();
[22471] Fix | Delete
x = xb + stack.shift();
[22472] Fix | Delete
y = yb;
[22473] Fix | Delete
bezierCurveTo(xa, ya, xb, yb, x, y);
[22474] Fix | Delete
}
[22475] Fix | Delete
break;
[22476] Fix | Delete
case 28:
[22477] Fix | Delete
stack.push((code[i] << 24 | code[i + 1] << 16) >> 16);
[22478] Fix | Delete
i += 2;
[22479] Fix | Delete
break;
[22480] Fix | Delete
case 29:
[22481] Fix | Delete
n = stack.pop() + font.gsubrsBias;
[22482] Fix | Delete
subrCode = font.gsubrs[n];
[22483] Fix | Delete
if (subrCode) {
[22484] Fix | Delete
parse(subrCode);
[22485] Fix | Delete
}
[22486] Fix | Delete
break;
[22487] Fix | Delete
case 30:
[22488] Fix | Delete
while (stack.length > 0) {
[22489] Fix | Delete
xa = x;
[22490] Fix | Delete
ya = y + stack.shift();
[22491] Fix | Delete
xb = xa + stack.shift();
[22492] Fix | Delete
yb = ya + stack.shift();
[22493] Fix | Delete
x = xb + stack.shift();
[22494] Fix | Delete
y = yb + (stack.length === 1 ? stack.shift() : 0);
[22495] Fix | Delete
bezierCurveTo(xa, ya, xb, yb, x, y);
[22496] Fix | Delete
if (stack.length === 0) {
[22497] Fix | Delete
break;
[22498] Fix | Delete
}
[22499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function