upload files

This commit is contained in:
phikill 2025-06-26 18:54:56 -03:00
parent 4bfaf8d3c6
commit d672bf4c0b
1594 changed files with 17495 additions and 0 deletions

347
custom_lobby/index.html Normal file
View file

@ -0,0 +1,347 @@
<!DOCTYPE html>
<html>
<head>
<title>OG:BG - Main Lobby</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
var globalScope = null;
var broConfiguration =
{
"gate": "http://{@gate}/index.html",
"uri": "http://127.0.0.1/publicproxy",
"entry": "ws://{@userproxy_elb}:81/userproxy",
"secureEntry": "ws://127.0.0.1/userproxy",
"useSecure": false,
"credential":
{
"lpc": "provider={provider}&ticket={ticket}&playerNetId={playerNetId}&cc={cc}&clientGameVersion={clientGameVersion}"
},
"verreq": "1.4.2",
"LayoutMode": "",
"LanpartyHome": ""
}
var production = false;
var broDevelopment = true;
</script>
<link rel="stylesheet" href="static/fonts/agency.css">
<link rel="stylesheet" href="static/fonts/overpass.css"> <!-- CS:GO MAP AS SCRIPT HEHE -->
<link rel="stylesheet" href="static/css/style.css">
<script src="static/js/socket.io.min.js"></script>
<script src="static/js/jquery-2.2.0.min.js"></script> <!-- ALERT: This is choking and interfering with lobby loading.-->
<script src="static/js/jquery-ui-1.11.4.min.js"></script>
<script src="static/js/jquery.selectBoxIt-3.8.1.min.js"></script>
<script src="static/js/coherent.js"></script>
<script src="static/js/coherent.mock.js"></script>
<script src="static/js/mock.entry.js"></script>
<script src="static/js/vue.js"></script>
<style>
.view-panel { display: none; }
.view-panel.active { display: block; }
</style>
</head>
<body oncontextmenu="return false;">
<div id="app">
<h1 class="title-text">OG:BG - LITE</h1>
<h2 class="subtitle-text"> SANDUBAO EDITION </h2>
<div class="right-menu noselect">
<div
v-for="router in routers"
:class="['right-menu-item', { active: router.active == true}, 'noselect']"
@click.stop="setRouter(router)">
<span>{{router.name}}</span>
</div>
</div>
<div class="right-submenu noselect">
<p
class="right-submenu-item"
v-for="router in currentRouter.child"
:class="[{'active': router.active == true}, 'noselect']"
@click="setSubRouter(router)">
<span>{{router.name}}</span>
</p>
</div>
<!-- user-info-section.html -->
<section class="user-info" id="user-info-section">
<!-- Avatar do usuário -->
<span class="user-avatar">
<img id="user-avatar-img" src="static/icons/ico-avatar.png" alt="User Avatar">
<span class="online" id="user-online-status"></span>
</span>
<!-- Ícones de ações -->
<i class="icon-attendance-book disabled" id="attendance-book-btn"></i>
<i class="icon-pcp dimmed" id="ucp-btn"></i>
<i class="icon-patchnote" id="patchnote-btn"></i>
<i class="icon-setting" id="settings-btn"></i>
<!-- currencies-section.html -->
<div class="currencies-wrapper pubg-font" id="currencies-section">
<!-- BP (Battle Points) -->
<div class="currency">
<span class="bp-unit">BP</span>
" N/A "
</div>
<!-- Fragmentos de Prata -->
<span class="currency">
<img class="currency-img" src="" alt="Silver Fragments">
" N/A "
</span>
<!-- Medalhas de Galinha -->
<span class="currency">
<img class="currency-img" src="" alt="Chicken Medals">
" N/A "
</span>
</div>
</section>
<p class="debug-text" :class="{'hide': !isDebug}">{{ debugInfo }}</p>
<p class="serial-text">{{ userSerial }}</p>
<p class="bottom-text">OG:BattleGrounds Team, test lobby : {{ gameVersion }}</p>
<p id="client-version-alert" class="pubg-client-ver"></p>
<!-- Painel principal PLAY -->
<div v-if="currentRouter.name === 'PLAY'" class="view-panel active">
<div v-if="getActiveSubrouterName() === 'PUBLIC MATCH'">
<h2></h2>
<p></p>
<span style="display: none" v-if="call_PLAY_PUBLIC_MATCH()"></span>
<div class="game-play-container">
<div class="join-server-container">
<div style="font-size: 2vh;color: lightgray;margin-bottom: 0.5vh;">REGION</div>
<button v-for="server in serverList"
v-bind:class="{'sel-server-button': true, 'active': server.name === currentServer.name}"
:id="server.name"
v-on:click="selectServer(server)">
{{ server.name }}
</button>
</div>
<br>
<div style="display: flex;flex-direction: row;align-items: flex-end;">
<!-- <button class="join-server-button" onclick="joinServer()" id="join"> -->
<button class="join-server-button" @click="joinServer" id="join">
<span id="join-server-text">START</span>
<span id="join-server-hint" style="padding: 0;margin: 0;font-size: 0.5em;"></span>
</button>
<div class="player-count" :class="{'hide': currentServer.name != 'AS'}">
{{ playerCountInfo }}
</div>
</div>
</div>
</div>
<div v-else-if="getActiveSubrouterName() === 'TRAINING MODE'">
<h2></h2>
<p></p>
</div>
<div v-else-if="getActiveSubrouterName() === 'CUSTOM MATCH'"> <!-- PLAY - CUSTOM MATCH MODE -->
<span style="display: none" v-if="call_PLAY_CUSTOM_MATCH()"></span>
<!-- step (1) -->
<div class="custom-match-title-text-create ">
<span>CREATE MATCH</span>
<div class="play_custom_match_box_session_name">
<img src="static/icons/ico-setting.png" alt="" class="icon">
<input type="text" placeholder="INPUT SESSION NAME">
</div>
</div>
<div class="custom-match-title-text-select-mode ">
<img src="static/icons/step_2.png" class="step-icon" alt="Step Icon">
<span>SELECT MODE</span>
</div>
<div class="custom-match-title-text-preset ">
<img src="static/icons/step_3.png" class="step-icon" alt="Step Icon">
<span>PRESET</span>
</div>
<div class="custom-match-title-text-options ">
<img src="static/icons/step_4.png" class="step-icon" alt="Step Icon">
<span>OPTIONS</span>
</div>
<div class="modos-container">
<div class="modo-box" onclick="customMatch_SelectMode('NORMAL_MODE')">NORMAL MODE</div>
<div class="modo-box" onclick="customMatch_SelectMode('ZOMBIE_MODE')">ZOMBIE MODE</div>
<div class="modo-box" onclick="customMatch_SelectMode('WAR_MODE')">WAR MODE</div>
<div class="modo-box" onclick="customMatch_SelectMode('ESPORTS_MODE')">ESPORTS MODE</div>
</div>
<div id="img-modo" class="modo-img"></div>
<div class="options-container">
<div class="custom_match_options_selection">
<label>MAP</label>
<span onclick="anteriorMapa()">&lt;</span>
<div class="valor" id="mapaAtual">TRAINING</div>
<span onclick="proximoMapa()">&gt;</span>
</div>
<div class="custom_match_options_selection">
<label>PERSPECTIVE</label>
<span onclick="nextPerspectiveMode()">&lt;</span>
<div class="valor" id="currentPerspective">TPP</div>
<span onclick="prevPerspectiveMode()">&gt;</span>
</div>
<div class="barra">
<label>PLAYERS</label>
<input type="range" min="1" max="100" value="100" oninput="atualizaPlayers(this.value)">
<span id="valorPlayers">100</span>
</div>
<div class="barra">
<label>TEAM MEMBERS</label>
<input type="range" min="1" max="4" value="4" oninput="customMatch_updateTeamMembers(this.value)">
<span id="customMatch_MembersValue">4</span>
</div>
<div class="custom_match_options_selection">
<label>WEATHER</label>
<span onclick="nextWeatherState()">&lt;</span>
<div class="valor" id="currentWeatherState">CLEAR</div>
<span onclick="prevWeatherState()">&gt;</span>
</div>
</div>
<!--
<div class="side-container">
<div class="custom-match-card" onclick="joinServerPlay()">
<div class="title">
<img src="static/icons/ico-setting.png" alt="" class="discord-icon-bg">
&ensp;test box!
</div>
<div class="content">
this is not a discord button anymore, this is to create a local server.
</div>
</div>
</div> -->
<div class="container" style="position: relative;">
<div class="custom-match-button-create" onclick="joinServerPlay()">
<div class="title">
<span>CREATE !</span>
</div>
</div>
</div>
</div>
</div>
<!-- Painel CUSTOMIZE -->
<div v-if="currentRouter.name === 'CUSTOMIZE'" class="view-panel active">
<div v-if="getActiveSubrouterName() === 'WARDROBE'">
<h2></h2>
<p></p>
<span style="display: none" v-if="call_CUSTOMIZE_WARDROBE()"></span> <!-- change lobby camera -->
</div>
<div v-else-if="getActiveSubrouterName() === 'WEAPONS'">
<h2></h2>
<p></p>
</div>
<div v-else-if="getActiveSubrouterName() === 'GEAR'">
<h2></h2>
<p></p>
</div>
<div v-else-if="getActiveSubrouterName() === 'EMOTES'">
<h2></h2>
<p></p>
</div>
<div v-else-if="getActiveSubrouterName() === 'APPEARANCE'">
<h2></h2>
<p></p>
<span style="display: none" v-if="call_CUSTOMIZE_APPEARANCE()"></span>
</div>
</div>
<!-- Painel STORE -->
<div v-if="currentRouter.name === 'STORE'" class="view-panel active">
<h2>Store</h2>
<p></p>
<span style="display: none" v-if="call_STORE()"></span>
</div>
<!-- Painel FRIENDS -->
<div v-if="currentRouter.name === 'SOCIAL'" class="view-panel active">
<div v-if="getActiveSubrouterName() === 'PROFILE'">
<h2>Profile Page</h2>
<p></p>a
<div id="output"
style="color: #0f0;
background: rgba(0,0,0,0.7);
padding: 10px;
margin: 10px;
font-family: monospace;
font-size: 1.2em;">
</div>
<span style="display: none" v-if="call_testOutputsDebug()"></span>
</div>
<div v-else-if="getActiveSubrouterName() === 'FRIENDS'">
<h2>Friends Page</h2>
<p></p>
<span style="display: none" v-if="call_clearDebug()"></span>
</div>
<div v-else-if="getActiveSubrouterName() === 'RANK'">
<h2>RANK PAGE</h2>
<p></p>
</div>
</div>
</div> <!-- <div id="app"> -->
<script src="static/js/main_lobby.js"></script>
</body>
</html>

View file

@ -0,0 +1,531 @@
<!DOCTYPE html>
<html lang="en">
<!-- Mirrored from 129.146.178.43/ by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 29 Dec 2024 23:31:23 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Main Lobby</title>
<link rel="stylesheet" href="static/fonts/agency.css">
<link rel="stylesheet" href="static/fonts/overpass.css"> <!-- CS:GO MAP AS SCRIPT-->
<link rel="stylesheet" href="static/css/style.css">
<script src="static/js/socket.io.min.js"></script>
<script src="static/js/jquery-2.2.0.min.js"></script>
<script src="static/js/jquery-ui-1.11.4.min.js"></script>
<script src="static/js/jquery.selectBoxIt-3.8.1.min.js"></script>
<script src="static/js/coherent.js"></script>
<script src="static/js/coherent.mock.js"></script>
<script src="static/js/mock.entry.js"></script>
<script src="static/js/vue.js"></script>
<script src="static/js/main_lobby.js"></script>
<style>
.view-panel { display: none; }
.view-panel.active { display: block; }
</style>
</head>
<body onload="initLobby()">
<body onload="createRole()">
<div id="app">
<h1 class="title-text">OG:BG - LITE</h1>
<h2 class="subtitle-text"> SANDUBAO EDITION </h2>
<div class="right-menu">
<p
class="right-menu-item"
v-for="router in routers"
:class="{ 'active': router.active === true }"
@click="setRouter(router)">{{ router.name }}
</p>
<p class="right-menu-item">STORE</p>
<p class="right-menu-item">FRIENDS</p>
</div>
<div class="right-submenu">
<p
class="right-submenu-item"
v-for="router in currentRouter.child"
:class="{'active': router.active == true}">{{router.name}}
</div>
<p class="debug-text" :class="{'hide': !isDebug}">{{ debugInfo }}</p>
<p class="serial-text">{{ userSerial }}</p>
<p class="bottom-text">OG:BattleGrounds Team, test lobby</p>
<div class="game-play-container">
<div class="join-server-container">
<div style="font-size: 2vh;color: lightgray;margin-bottom: 0.5vh;">REGION</div>
<button v-for="server in serverList"
v-bind:class="{'sel-server-button': true, 'active': server.name === currentServer.name}"
:id="server.name"
v-on:click="selectServer(server)">
{{ server.name }}
</button>
</div>
<br>
<div style="display: flex;flex-direction: row;align-items: flex-end;">
<button class="join-server-button" onclick="joinServer()" id="join">
<span id="join-server-text">START</span>
<span id="join-server-hint" style="padding: 0;margin: 0;font-size: 0.5em;"></span>
</button>
<div class="player-count" :class="{'hide': currentServer.name != 'AS'}">
{{ playerCountInfo }}
</div>
</div>
</div>
<div class="side-container">
<div class="discord-card" onclick="joinDiscord()">
<div class="title">
<img src="static/icons/discord.svg" alt="" class="discord-icon-bg">
&ensp;Join Our Discord!
</div>
<div class="content">
this is not a discord button anymore, this is to create a local server.
</div>
</div>
</div>
<div class="player-info-container">
<div class="user-info">
{{ Player }}
</div>
<div class="bp-info">
<img src="static/icons/item6.png" alt="BP Icon" style="height: 1.9em; width: auto;" class="BP-ICO-BETA">
<span style="color: yellow; font-size: 16px; line-height: 1;">90.999.999f</span>
</div>
</div>
</div>
<script>
var serverList = [
{
name: "AS - Asia Server",
description: "Asia Server",
//ip: "218.93.206.88:52525"
},
{
name: "NA - North American",
description: "North Amercian Server",
//ip: "40.124.122.51:8888"
},
{
name: "OCE",
//ip: "119.17.151.38:8888"
},
{
name: "SA - South America",
description: "Possivel Brasil sil",
//ip: "pubgsabrasil.servegame.com:8888"
},
{
name: "EU - N",
//ip: "playerunknownsbattlegrounds.asuscomm.com:8888"
},
{
name: "LOCALHOST - 127.0.0.1",
description: "connect to localhost",
ip: "127.0.0.1:7777"
}
]
var routers = [
{
name: "PLAY",
active: true,
child: [
{
name: "Public Match",
active: true,
},
{
name: "Training Mode",
active: false,
},
{
name: "Custom Match",
active: false,
}
]
},
{
name: "CUSTOMIZE",
active: true,
child: [
{
name: "WARDROBE",
active: true,
},
{
name: "WEAPONS",
active: false,
},
{
name: "GEAR",
active: false,
},
{
name: "EMOTES",
active: false,
},
{
name: "APPEARENCE",
active: false,
}
]
}
]
// var player = engine.trigger('GetClientAuthData')
console.log("Yes");
/*
function joinDiscord() {
engine.trigger('OpenExternalBrowser', '../discord.com/invite/UMhffXUVpm.html');
}*/
function joinDiscord() {
var ipAddress;
ipAddress = 'shooting_range4?listen';
engine.trigger('JoinToDedicatedServer', ipAddress,
{
"Key": "",
"ServerIV": "",
"ClientIV": ""
});
}
var userSerial, PlayerID;
$().ready(function()
{
var result = engine.call('GetClientAuthData');
result.then(function (r)
{
app.debugInfo = "info:" + JSON.stringify(r);
app.userSerial = r.userSerial;
app.Player = r.userSerial.toString().split('-')[0];
checkClientIDRegistration(app.Player).then(function(result)
{
if (result === 1)
{
console.log('Nick já registrado, criar personagem...');
//loadLobby();
createRole();
}
else if (result === 2)
{createRole();
console.log('Nick não registrado, solicitar registro...');
showNickRegistrationPage();
}
else
{createRole();
console.error('Erro ao verificar o nick');
}
});
})
})
function initLobby()
{
//createRole();
}
function createRole()
{
// Substituir 'playerID0' pelo valor dinâmico de Player
engine.trigger('CreateLobbyCharacter', 0, false, "", "mango_tree");
engine.trigger('UpdateLobbyCharacter', 0,
{
"Gender":true,
"BoolOptions":[],
"FloatOptions":[],
"StringOptions":[
{"First":"Hair","Second":"F_Hair_A_04"},
{"First":"Face","Second":"F_Face_01"},
{"First":"NudeBody","Second":"F_NudeBody_01"},
{"First":"Makeup","Second":"0"},
],
"ItemIds":["Item_Body_C_01_C",
"Item_Head_C_02_C",]
});
//engine.trigger('DestoryLobbyCharacter', 0)
//engine.trigger('DestoryLobbyCharacter', 1)
//engine.trigger('DestoryLobbyCharacter', 2)
//engine.trigger('DestoryLobbyCharacter', 3)
//engine.trigger('SetLobbyCharacterAngle',0, 90)
}
//engine.trigger('DestroyLobbyCharacter', 0);
//engine.trigger('SetLobbyCharacterAngle', 0, 10);
engine.trigger('CreateLobbyCharacter', 0, false, "","playerID0")
engine.trigger('UpdateLobbyCharacter', 0,
{
"Gender":true,
"BoolOptions":[],
"FloatOptions":[],
"StringOptions":[
{"First":"Hair","Second":"M_Hair_A_01"},
{"First":"Face","Second":"M_Face_01"},
{"First":"NudeBody","Second":"M_NudeBody_01"},
],"ItemIds":[
"Item_Body_F_01",
]});
engine.trigger('SetLobbyCharacterAngle', 0, 100);
engine.trigger('CreateLobbyCharacter', 1, true, "","playerID1")
engine.trigger('UpdateLobbyCharacter', 1,
{
"Gender":true,
"BoolOptions":[],
"FloatOptions":[],
"StringOptions":[
{"First":"Hair","Second":"M_Hair_A_01"},
{"First":"Face","Second":"F_Face_01"},
{"First":"NudeBody","Second":"F_NudeBody_01"},
],"ItemIds":[
"Item_Body_F_01",
]});
engine.trigger('SetLobbyCharacterAngle', 1, 100);
// tests
engine.trigger('SetLobbyCharacterReady', 1, 1);
engine.trigger('SetLobbyCharacterHost', 0); // Change King of group
//engine.trigger('CheckPartyLeaderChange', 'playerID0'); // what is this ? 'CheckPartyLeaderChange', PartyLeaderNickname=%s"
// camera
//engine.trigger('CameraTransitionCreateCharacter'); // change camera to character modify
//engine.trigger('CameraTransitionSolo'); // shows lobby character 0 only
//engine.trigger('CameraTransitionDuo'); // move camera for 2 players in lobby
//engine.trigger('CameraTransitionSquad'); // move camera for 4 players in lobby
//engine.trigger('CameraTransitionCustomMatch'); // move camera to car and blur , custom match
//engine.trigger('CameraTransitionHome'); // equals a lobby 0, singleplayer : 'CameraTransitionSolo'
engine.trigger('CameraTransitionPlay'); // same ? equals a lobby 0;
//engine.trigger('CameraTransitionCustomWardrobe'); // Invetory , camera, or shop
//engine.trigger('CameraTransitionCustomAppearance'); // customize character, hair, faces, gender etc.
//engine.trigger('CameraTransitionRewards'); // I don't know if it works
//engine.trigger('CameraTransitionCareer'); // same the same as custom match , CameraTransitionCustomMatch
//engine.trigger('CameraTransitionWatch'); // I don't know if it works
//engine.trigger('CameraTransitionLeaderboard'); // same the same as custom match , CameraTransitionCustomMatch
//engine.trigger('CameraTransitionSettings'); // I don't know if it works
//engine.trigger('ChangeSceneFromName'); // I don't know if it works
// engine.trigger('ShowCharacterViewMode'); // I don't know if it works
// engine.trigger('ShowWeaponOrGearViewMode'); // I don't know if it works
//engine.trigger('RequestSystemMenu'); // open game menu
//engine.trigger('ShowViewMode'); // I don't know if it works
//engine.trigger('HideViewMode'); // I don't know if it works
//engine.trigger('AddLobbyViewModeAngle'); // I don't know if it works
//engine.trigger('AddLobbyViewModeAngleXY'); // I don't know if it works
//engine.trigger('AddLobbyViewModeScale'); // I don't know if it works
//engine.trigger('ResetViewMode'); // I don't know if it works
//engine.trigger('ShowCharacterPreview', 1); // I don't know if it works
//engine.trigger('HideCharacterPreview', 1); // I don't know if it works
//engine.trigger('OnStartRotation'); // I don't know if it works
//engine.trigger('ShowCurtain'); // I don't know if it works
//engine.trigger('HideCurtain'); // I don't know if it works
//engine.trigger('EnableSystemMenuButton'); // I don't know if it works
//engine.trigger('DisableSystemMenuButton'); // I don't know if it works
//engine.trigger('PlayEmoteAnimation'); // I don't know if it works
//engine.trigger('ResetEmoteAnimation'); // I don't know if it works
//engine.trigger('SetLocalUserData'); // I don't know if it works
//engine.trigger('NotifyLobbyConnecting'); // I don't know if it works
//engine.trigger('SetLobbyCharacterBlur'); // I don't know if it works
//engine.trigger('UpdateStatTrak'); // I don't know if it works
/*
engine.trigger('CreateLobbyCharacter', 2, false, "","playerID2")
engine.trigger('UpdateLobbyCharacter', 2,
{
"Gender":true,
"BoolOptions":[],
"FloatOptions":[],
"StringOptions":[
{"First":"Hair","Second":"F_Hair_B_05"},
{"First":"Face","Second":"F_Face_04"},
{"First":"NudeBody","Second":"F_NudeBody_04"},
],"ItemIds":[
"Item_Body_F_02",
]});
engine.trigger('CreateLobbyCharacter', 3, true, "","playerID3")
engine.trigger('UpdateLobbyCharacter', 3,
{
"Gender":true,
"BoolOptions":[],
"FloatOptions":[],
"StringOptions":[
{"First":"Hair","Second":"M_Hair_C_04"},
{"First":"Face","Second":"M_Face_06"},
{"First":"NudeBody","Second":"M_NudeBody_03"},
{"First":"NudeBody","Second":"M_NudeBody_03"},
],"ItemIds":[
"Item_Body_F_01",
]});*/
var app = new Vue({
el: '#app',
data: {
serverList: serverList,
Player: "player",
userSerial: "userSerial",
currentServer: serverList[0],
debugInfo: "Here is debugInfo",
isDebug: false,
routers: routers,
currentRouter: routers[0],
playerCountInfo: "Wait for Update",
},
methods: {
selectServer: selectServer,
joinServer: joinServer,
getServerByName: getServerByName,
}
});
$().ready(function()
{
var result = engine.call('GetClientAuthData');
result.then(function (r)
{
app.debugInfo = "info:" + JSON.stringify(r);
app.userSerial = r.userSerial;
app.Player = r.userSerial.toString().split('-')[0];
// console.log
})
// var result = engine.trigger("UdpPingTest", "218.93.206.88:52525", 1, 5);
// app.debugInfo = "info:" + result;
// engine.on('UdpPingTestResult', function (n, l, t) {
// console.log(n, l, t);
// app.debugInfo = "info:" + n + " " + l + " " + t;
// $(".debug-text").text(n + " " + l + " " + t);
// })
// $("#join-server-hint").text(result[0].ping);
// $("#join-server-hint").text(result[0].ip);
// updateServerStatus();
})
function selectServer(val)
{
app.server = val;
updateServerStatus();
}
function getServerByName(serverName)
{
return serverList.find(function (item)
{
return item.name === serverName;
});
}
function selectServer(server)
{
app.currentServer = server;
if (server.name == "AS")
{
$.ajax({
url: "GetPlayerNum?region=ASIA",
type: "GET",
dataType: "text",
success: function (data)
{
app.playerCountInfo = data;
}
})
}
// updateServerStatus();
}
function joinServer()
{
try
{
//$("#join-server-text").text('Joining...');
$("#join-server-hint").text("a" + app.currentServer.ip);
engine.trigger('JoinToDedicatedServer', app.currentServer.ip,
{
"Key": "",
"ServerIV": "",
"ClientIV": ""
});
}
catch(e)
{
$("#join-server-text").text(e);
}
}
</script>
</body>
<!-- Mirrored from 129.146.178.43/ by HTTrack Website Copier/3.x [XR&CO'2014], Sun, 29 Dec 2024 23:31:49 GMT -->
</html>

View file

@ -0,0 +1,833 @@
@font-face {
font-family:"Pubg Sans Regular";
src:url("../fonts/PUBG_SANSd41d.eot?") format("eot"),
url("../fonts/PUBG_SANS.woff") format("woff"),
url("../fonts/PUBG_SANS.ttf") format("truetype"),
url("../fonts/PUBG_SANS.svg#PubgSans-Regular") format("svg");
font-weight:normal;
font-style:normal;
}
body {
font-family: 'Agency', sans-serif;
cursor: pointer;
font-size: larger;
}
/* For Buttons */
.noselect {
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
cursor: pointer;
}
.right-menu {
position: absolute;
margin-top: 3.3vh;
left: 21vw;
right: 0;
width: 70vw;
font-size: 3vh;
color: #fff;
display: flex;
text-transform: uppercase;
flex-direction: row;
justify-content: flex-start;
align-items: center;
/* border-bottom: 2px solid rgba(255, 255, 255, 0.5); */
}
.right-submenu {
position: absolute;
margin-top: 7.5vh;
left: 21.5vw;
right: 0;
width: 70vw;
font-size: 2.5vh;
color: #fff;
display: flex;
text-transform: uppercase;
flex-direction: row;
justify-content: flex-start;
align-items: flex-start;
/* border-bottom: 2px solid rgba(255, 255, 255, 0.5); */
}
.right-submenu-item
{
margin: 0 1vw;
color: gray;
transition: color 0.2s ease, border-color 0.2s ease;
cursor: pointer;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
}
.right-submenu-item.active{
color: #e3b62f;
}
.right-submenu-item:hover {
color: #e3b62f;
}
.right-menu-item
{
margin: 0 1vw;
color: gray;
transition: color 0.2s ease, border-color 0.2s ease;
cursor: pointer;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
}
.right-menu-item.active{
color: #e3b62f;
border-bottom: #e3b62f solid 2px;
}
.right-menu-item:hover {
color: #e3b62f;
}
.title-text {
font-family: 'PUBG Sans Regular';
text-shadow: #000 0.1em 0.1em 0.2em;
color: white;
font-size: 5.5vh;
margin-top: 2vh;
margin-left: 2vh;
position: fixed;
}
/* SANDUBAO EDITION TEXT */
.subtitle-text {
font-family: 'PUBG Sans Regular';
text-shadow: #000 0.1em 0.1em 0.2em;
color: Chocolate;
font-size: 3.5vh;
margin-top: 8vh;
margin-left: 6vh;
position: fixed;
}
.bottom-text {
position: fixed;
bottom: 0;
left: 0;
right: 0;
text-align: center;
font-size: 1.5vh;
color: #fff;
text-shadow: #000 0.1em 0.1em 0.2em;
}
.game-play-container {
position: fixed;
bottom: 0;
padding: 0vh;
margin: 2vh;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: center;
color: #fff;
}
/* Yellow button with borders */
.join-server-button {
background-color: rgba(227, 182, 47, 0.5);
/* border: 2px solid darkgray; */
font-family: 'Agency';
padding: 1vh 0vh 1vh 0vh;
width: 20vh;
color: #fff;
font-size: 4vh;
cursor: pointer;
border: 2px solid rgba(227, 182, 47, 1);
border-radius: 0px;
text-align: center;
transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.join-server-button:hover {
background-color: rgba(227, 182, 47, 0.7);
/* color: #FFF; */
}
/* 平铺服务器区域按钮 */
.join-server-container {
display: flex;
padding: 0;
margin-bottom: 0vh;
width: 20vh;
flex-direction: column;
color: #fff;
/* justify-content:space-between; */
}
.sel-server-button {
font-family: 'Agency';
margin-bottom: -0.25vh;
font-size: 2vh;
text-align: left;
text-indent: 0.5vw;
padding: 0.2vh 0vh 0.2vh 0vh;
background-color: rgba(0, 0, 0, 0.5);
border: 1px solid rgba(255, 255, 255, 0.5);
color: gray;
}
.sel-server-button.active {
color: rgba(227, 182, 47, 1);
}
.side-container {
position: fixed;
left: 75vw;
bottom: 2vh;
width: 25vw;
display: flex;
flex-direction: column;
color: #fff;
}
.discord-card {
background: rgba(108, 69, 147, 0.5);
border-left: 10px solid rgb(255, 255, 255);
padding: 2vh;
}
.discord-card > .title {
font-size: 3vh;
padding: 1vh;
color: #fff;
z-index: 9999;
display: flex;
justify-content: left center;
align-items: safe center;
}
.discord-card > .content {
font-size: 2vh;
padding: 1vh;
color: #fff;
z-index: 9999;
}
.discord-card:hover {
color: rgb(38, 30, 45);
}
.discord-icon-bg {
width: 5vh;
padding-bottom: 1vh;
color: #563d5f;
}
.custom-match-title-text-create
{
font-family: 'PUBG Sans Regular';
text-shadow: #000 0.1em 0.1em 0.2em;
color: white;
font-size: 4vh;
margin-top: 15vh;
margin-left: 5vh;
position: absolute;
}
.custom-match-title-text-select-mode
{
position: absolute;
top: 30vh;
left: 5vh;
font-family: 'PUBG Sans Regular';
text-shadow: #000 0.1em 0.1em 0.2em;
color: white;
font-size: 2.5vh;
display: flex; /* para alinhar imagem e texto */
align-items: center;
gap: 2vh; /* espaço entre ícone e texto */
}
.custom-match-title-text-select-mode .step-icon
{
width: 3vh; /* Deixa um pouco mais grossa (maior) */
height: 3vh;
object-fit: contain; /* Garante proporção */
display: block;
/* Alinhamento vertical fino */
position: relative;
top: 0.1vh; /* Ajuste fino, pode testar com 0.1~0.3 */
filter: invert(58%) sepia(93%) saturate(750%) hue-rotate(-20deg) drop-shadow(0 0 0.2vh orange) brightness(1.2);
}
.custom-match-title-text-preset
{
position: absolute;
top: 30vh;
left: 50vh;
font-family: 'PUBG Sans Regular';
text-shadow: #000 0.1em 0.1em 0.2em;
color: white;
font-size: 2.5vh;
display: flex; /* para alinhar imagem e texto */
align-items: center;
gap: 2vh; /* espaço entre ícone e texto */
}
.custom-match-title-text-preset .step-icon
{
width: 3vh; /* Deixa um pouco mais grossa (maior) */
height: 3vh;
object-fit: contain; /* Garante proporção */
display: block;
/* Alinhamento vertical fino */
position: relative;
top: 0.1vh; /* Ajuste fino, pode testar com 0.1~0.3 */
filter: invert(58%) sepia(93%) saturate(750%) hue-rotate(-20deg) drop-shadow(0 0 0.2vh orange) brightness(1.2);
}
.custom-match-title-text-options
{
position: absolute;
top: 30vh;
left: 90vh;
font-family: 'PUBG Sans Regular';
text-shadow: #000 0.1em 0.1em 0.2em;
color: white;
font-size: 2.5vh;
display: flex; /* para alinhar imagem e texto */
align-items: center;
gap: 2vh; /* espaço entre ícone e texto */
}
.custom-match-title-text-options .step-icon
{
width: 3vh; /* Deixa um pouco mais grossa (maior) */
height: 3vh;
object-fit: contain; /* Garante proporção */
display: block;
/* Alinhamento vertical fino */
position: relative;
top: 0.1vh; /* Ajuste fino, pode testar com 0.1~0.3 */
filter: invert(58%) sepia(93%) saturate(750%) hue-rotate(-20deg) drop-shadow(0 0 0.2vh orange) brightness(1.2);
}
.radio-button:hover {
color: #FFC107;
}
.radio-button:checked {
color: #FFC107;
}
.hide {
display: none;
}
.debug-text {
position: fixed;
bottom: 50vh;
left: 0;
right: 0;
text-align: center;
font-size: 1.5vh;
color: #fff;
background-color: rgba(255, 255, 255, 0.363);
text-shadow: #000 0.1em 0.1em 0.2em;
}
.serial-text {
position: fixed;
bottom: 3vh;
left: 0;
right: 0;
text-align: center;
font-size: 1.5vh;
color: rgba(255, 255, 255, 0.5)
}
.player-info-container {
font-family: 'Overpass-Reg', sans-serif;
position: fixed;
left: 1.5vw;
top: 16vh;
width: 15vw; /* Maior largura para acomodar o nome do jogador */
font-size: 2vh;
display: flex;
flex-direction: row;
color: #fff;
align-items: center;
}
.user-info {
padding-left: 1vw;
color: #fff;
white-space: nowrap; /* Impede quebra de linha */
overflow: hidden; /* Garante que o texto não ultrapasse */
text-overflow: ellipsis; /* Exibe "..." se o texto for muito longo */
max-width: 8vw; /* Define um limite máximo para o comprimento do nome */
margin-right: 0.8vw; /* Garante um pequeno espaço entre o nome e o ícone */
}
.bp-info {
font-family: 'Agency';
display: flex;
align-items: center;
}
.bp-info > strong {
color: #FFC107;
padding-right: 0.5vw;
}
.BP-ICO-BETA {
height: 1.9em;
width: auto;
}
.player-count {
padding-left: 1vh;
font-size: 2vh;
}
.play_custom_match_box_session_name
{
position: absolute;
top: 075px;
left: 154%;
transform: translateX(-50%);
width: 600px;
height: 50px;
background: rgba(70, 70, 70, 0.7);
padding: 12px 16px;
color: white;
font-family: sans-serif;
display: flex;
align-items: center;
gap: 10px;
box-sizing: border-box;
}
.play_custom_match_box_session_name .icon
{
width: 24px;
height: 24px;
background-size: contain;
}
.play_custom_match_box_session_name input[type="text"]
{
flex: 1;
background: transparent;
border: none;
outline: none;
color: white;
font-size: 16px;
}
.modo-box
{
background: rgba(60, 60, 60, 0.5);
border-radius: 4px;
padding: 10px;
margin: 5px;
cursor: pointer;
text-align: center;
color: white;
border: 2px solid transparent;
transition: 0.2s;
min-width: 20vh; /* Largura mínima opcional para padronizar */
}
.modo-box.ativo
{
border-color: white;
background: rgba(100, 100, 100, 0.6);
}
.modos-container
{
position: absolute;
top: 35vh; /* Um pouco abaixo do SELECT MODE (ajuste conforme necessário) */
left: 5vh; /* Mesmo alinhamento horizontal do SELECT MODE */
display: flex;
flex-direction: column;
}
.modo-img
{
width: 100%;
height: 200px;
background-size: cover;
margin-top: 10px;
display: none;
}
.modo-img.ativo
{
display: block;
}
.custom_match_options_selection
{
display: flex;
align-items: center;
justify-content: space-between;
background: rgba(60, 60, 60, 0.6);
padding: 10px 15px;
border-radius: 6px;
color: white;
margin: 8px 0;
}
.opcao span
{
cursor: pointer;
padding: 0 10px;
}
.options-container
{
position: absolute;
top: 35vh; /* Logo abaixo do título OPTIONS */
left: 90vh;
display: flex;
flex-direction: column;
gap: 1vh; /* Espaço entre os elementos */
width: 30vh; /* Largura opcional */
}
.valor
{
font-weight: bold;
}
.barra
{
display: flex;
align-items: center;
background: rgba(60, 60, 60, 0.6);
padding: 10px 15px;
border-radius: 6px;
margin: 8px 0;
color: white;
gap: 20px;
}
.barra input[type=range]
{
flex: 1;
}
.barra span
{
width: 40px;
text-align: right;
}
.barra label
{
min-width: 100px; /* largura fixa opcional */
margin-right: 10px; /* afasta do input */
font-weight: bold; /* opcional, deixa o texto mais forte */
}
.custom-match-button-create
{
position: absolute;
top: 85vh; /* ou qualquer valor que desejar */
left: 5vh;
width: 20vh; /* largura relativa à altura da tela */
height: 6vh; /* altura relativa */
background: rgba(180, 145, 2, 1.5);
/* border-right: 10px solid rgb(255, 255, 255); */
border-radius: 100px;
padding: 1vh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
box-sizing: border-box; /* garante que padding não ultrapasse tamanho */
}
.custom-match-button-create > .title {
font-size: 2.5vh;
padding: 0.5vh;
color: #000000;
z-index: 9999;
display: flex;
text-align: center;
justify-content: center;
align-items: safe center;
}
.custom-match-button-create > .content
{
font-size: 1.5vh;
padding: 0.5vh;
color: #fff;
z-index: 9999;
text-align: center;
}
.custom-match-button-create :hover
{
color: rgb(255, 255, 255);
}
/* Version ALERT */
.pubg-client-ver{
position:absolute;
bottom:.55555556vh;
left:5.55555556vh;
display:inline-block;
text-align:center;
color:#fff;
font-weight:400;
pointer-events:none;
font-size:1.2962963vh
}
/* test WARDROBE */
/* test top buttons in main lobby */
/* user-info-section.css */
/*.user-info
{
display: flex;
align-items: center;
gap: 15px;
padding: 10px;
background-color: rgba(0, 0, 0, 0.5);
border-radius: 5px;
}*/
.user-info
{
position: absolute;
top: 0;
right: 0;
display: flex;
align-items: center;
padding: 4.16666667vh 5.55555556vh 0 0;
z-index: 10;
}
.user-info-hidden {
display: none;
}
/*
.user-avatar {
position: relative;
width: 50px;
height: 50px;
}*/
.user-avatar
{
display: inline-flex;
position: relative;
}
.user-avatar img
{
width: 3.7037037vh;
height: 3.7037037vh;
border-radius: .27777778vh;
border: .09259259vh solid #707070;
/* background: url(resources/ico-avatar.e7ba603.png) center center / cover no-repeat #2f2f2f;
*/
background: url() center center / cover no-repeat #2f2f2f;
box-sizing: border-box;
}
.user-avatar
.online
{
display: block;
position: absolute;
bottom: 0;
right: 0;
width: .55555556vh;
height: .55555556vh;
border: .09259259vh solid #818181;
border-radius: 50%;
background-color: #7be300;
}
.user-avatar
.offline
{
background-color: #f44336;
}
/*
.icon-attendance-book,
.icon-pcp,
.icon-patchnote,
.icon-setting
{
font-size: 24px;
cursor: pointer;
color: #fff;
transition: all 0.3s;
}*/
.user-info
i.disabled
{
cursor: none;
pointer-events: none;
}
.user-info
i
{
/*
margin-left: 1.66666667vh;
width: 2.96296296vh;
height: 2.96296296vh;
display: inline-block;
cursor: pointer;
*/
}
/*
.icon-attendance-book,
.icon-pcp,
.icon-patchnote,
.icon-setting
{
margin-left: 1.66666667vh;
/*width: 2.96296296vh;
height: 2.96296296vh;*
display: inline-block;
cursor: pointer;
}*/
/* currencies-section.css */
.user-info
.currencies-wrapper
{
position: absolute;
display: flex;
align-items: center;
top: 9.25925926vh;
right: 5.55555556vh;
}
.user-info
.currencies-wrapper
.currency
{
position: relative;
display: flex;
align-items: center;
margin-top: .09259259vh;
margin-left: 1.48148148vh;
font-size: 2.31481481vh;
font-weight: 700;
text-shadow: .04em .04em .16em #6b6b6b;
}
.user-info
.currencies-wrapper
.currency
.bp-unit
{
margin-right: .46296296vh;
color: #f1cc35;
text-shadow: .04em .04em .16em #4d5464;
}
.user-info
.currencies-wrapper
.currency
.currency-img
{
width: 2.96296296vh;
height: 2.96296296vh;
padding-top: .27777778vh;
margin-right: .46296296vh;
}
.pubg-font {
font-family: 'PUBG Font', 'Arial Narrow', Arial, sans-serif;
text-transform: uppercase;
letter-spacing: 1px;
}

Binary file not shown.

View file

@ -0,0 +1,639 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg>
<metadata>
Created by FontForge 20110222 at Thu Feb 6 08:37:24 2014
By www-data
Copyright (c) 2011 by Red Hat, Inc. All rights reserved.
</metadata>
<defs>
<font id="Overpass-Reg" horiz-adv-x="1290" >
<font-face
font-family="Overpass"
font-weight="400"
font-stretch="normal"
units-per-em="2048"
panose-1="2 11 5 3 2 2 3 2 2 3"
ascent="1536"
descent="-512"
x-height="1047"
cap-height="1434"
bbox="-131 -541 2449 1888"
underline-thickness="184"
underline-position="-178"
unicode-range="U+0020-2122"
/>
<missing-glyph />
<glyph glyph-name="Eth" unicode="&#xd0;" horiz-adv-x="1403"
d="M184 618h-133v197h133v619h402q125 0 224 -28.5t175 -78.5t130 -118.5t88.5 -148t50.5 -167.5t16 -176q0 -82 -14.5 -167.5t-48 -165t-86.5 -149.5t-130 -122.5t-179.5 -82.5t-233.5 -30h-394v618zM612 201q82 0 146.5 21.5t113 58.5t82 87t55 107.5t31 119t9.5 122.5
q0 97 -23.5 189.5t-73.5 165t-128.5 117t-188.5 44.5h-238v-418h310v-197h-310v-417h215z" />
<glyph glyph-name="eth" unicode="&#xf0;" horiz-adv-x="1161"
d="M862 1391l-96 -101q75 -61 130 -140.5t91 -174t54 -201.5t18 -223q0 -120 -29 -225t-88 -183t-149 -123t-213 -45q-103 0 -190.5 36t-151.5 100t-100 151.5t-36 190.5q0 106 36.5 194t99 152t145.5 99.5t176 35.5q47 0 90.5 -10.5t80 -29.5t65 -45.5t45.5 -57.5
q-25 118 -77.5 209t-129.5 153l-127 -133l-113 106l103 107q-51 20 -106.5 31t-115.5 14v180q104 -3 192.5 -24t164.5 -58l119 123zM578 733q-57 0 -105 -20t-83.5 -57t-55 -88.5t-19.5 -114.5q0 -59 20.5 -110t56.5 -88t84 -58t104 -21t104.5 21t84.5 58t56.5 87t20.5 109
q0 61 -20 113t-56 89.5t-85 58.5t-107 21z" />
<glyph glyph-name="Scaron" unicode="&#x160;" horiz-adv-x="1237"
d="M715 1569h-215l-289 319h205l193 -162l192 162h205zM854 1108q-13 31 -36 57.5t-56 46t-75.5 30.5t-94.5 11q-103 0 -161 -45t-58 -127q0 -51 32 -86.5t84 -62.5t118.5 -49.5t136 -49t136 -61t118.5 -84t84 -119t32 -166.5q0 -103 -37.5 -182.5t-103.5 -134t-155.5 -83
t-192.5 -28.5q-96 0 -179.5 24.5t-151 70t-116.5 110t-76 144.5l201 73q22 -48 54.5 -88t74.5 -68.5t92.5 -44.5t108.5 -16t106 14t82 42t53 69.5t19 95.5q0 64 -32 107.5t-84 75.5t-118.5 56t-136 49t-136 56t-118.5 76t-84 108t-32 154q0 76 30.5 144t88.5 119.5t143 81.5
t194 30q91 0 165 -21.5t129.5 -59.5t92.5 -90t56 -113z" />
<glyph glyph-name="scaron" unicode="&#x161;" horiz-adv-x="973"
d="M582 1180h-215l-289 319h205l193 -162l192 162h205zM477 -25q-62 0 -121 12t-110.5 34t-93.5 53.5t-70 70.5l151 129q16 -15 39 -33.5t53 -34.5t67 -27t81 -11q40 0 74 6t58.5 19t38 34.5t13.5 53.5q0 37 -25.5 63.5t-66.5 48t-93 41t-105 41.5q-49 21 -96 46t-83.5 60
t-59 83.5t-22.5 117.5q0 70 28.5 124t78 90.5t116 55.5t142.5 19q67 0 123.5 -13t102 -35t80.5 -50.5t61 -59.5l-154 -122q-14 14 -33.5 29.5t-45.5 28.5t-59 21.5t-75 8.5q-68 0 -107.5 -25t-39.5 -72q0 -30 21 -52.5t57 -41.5t82.5 -36.5t97.5 -37.5q54 -21 106 -47
t92.5 -64t65 -92t24.5 -130q0 -75 -28 -132.5t-79.5 -96t-124 -58t-161.5 -19.5z" />
<glyph glyph-name="Yacute" unicode="&#xdd;" horiz-adv-x="1364"
d="M575 0v561l-503 873h243l367 -656l367 656h243l-504 -871v-563h-213zM682 1569h-217l290 319h291z" />
<glyph glyph-name="yacute" unicode="&#xfd;" horiz-adv-x="1102"
d="M498 -397h-217l161 415l-391 1029h211l258 -685q11 -29 17 -48t12 -44q6 25 12 44t17 48l260 685h213zM508 1180h-217l290 319h291z" />
<glyph glyph-name="Thorn" unicode="&#xde;" horiz-adv-x="1315"
d="M184 0v1434h213v-267h363q132 0 222.5 -38t146 -100t80 -140.5t24.5 -159.5q0 -75 -26 -153t-83 -141.5t-147 -103.5t-217 -40h-363v-291h-213zM772 496q67 0 112.5 21t74 54t41 74.5t12.5 83.5q0 37 -11 78.5t-38 76t-73.5 57t-117.5 22.5h-375v-467h375z" />
<glyph glyph-name="thorn" unicode="&#xfe;" horiz-adv-x="1151"
d="M618 -25q-46 0 -83.5 9t-68.5 25t-55.5 36.5t-43.5 44.5v-403l-213 -99v1770l213 100v-495q41 46 101 77t150 31q99 0 179 -37.5t136 -108t86 -172.5t30 -231t-31.5 -230.5t-88 -172t-136 -107.5t-175.5 -37zM588 176q121 0 184.5 89t63.5 257q0 76 -16.5 140t-48.5 110
t-78 72t-105 26q-75 0 -130.5 -30.5t-90.5 -87.5v-455q18 -24 40.5 -46t50 -38.5t60 -26.5t70.5 -10z" />
<glyph glyph-name="Zcaron" unicode="&#x17d;" horiz-adv-x="1356"
d="M799 1569h-215l-289 319h205l193 -162l192 162h205zM113 0v172l827 1057h-780v205h1063v-172l-830 -1057h830v-205h-1110z" />
<glyph glyph-name="zcaron" unicode="&#x17e;" horiz-adv-x="1047"
d="M635 1180h-215l-289 319h205l193 -162l192 162h205zM113 0v174l555 684h-514v189h770v-168l-555 -691h553v-188h-809z" />
<glyph glyph-name="onehalf" unicode="&#xbd;" horiz-adv-x="1495"
d="M143 580v684h-113v125q32 0 55.5 3t40.5 10t29 17t21 25h135v-864h-168zM815 0q0 92 24 167.5t65.5 135.5t96 105t115.5 77q25 13 47 26t39 28.5t27 34.5t10 44q0 41 -30 71t-87 30q-58 0 -94.5 -35t-48.5 -98l-166 39q11 54 39 100.5t68.5 80.5t92 53.5t109.5 19.5
q69 0 123.5 -20t92.5 -55t58.5 -83.5t20.5 -106.5q0 -57 -18 -97.5t-49.5 -71.5t-74 -56.5t-91.5 -50.5q-71 -37 -109.5 -83t-60.5 -95h401v-160h-600zM20 -25l979 1483h195l-979 -1483h-195z" />
<glyph glyph-name="onequarter" unicode="&#xbc;" horiz-adv-x="1405"
d="M143 580v684h-113v125q32 0 55.5 3t40.5 10t29 17t21 25h135v-864h-168zM1084 0v176h-435v109l441 581h157v-532h111v-158h-111v-176h-163zM1084 334v291l-224 -291h224zM20 -25l979 1483h195l-979 -1483h-195z" />
<glyph glyph-name="onesuperior" unicode="&#xb9;" horiz-adv-x="410"
d="M133 909v684h-113v125q32 0 55.5 3.5t40.5 10t29 17t21 25.5h135v-865h-168z" />
<glyph glyph-name="threequarters" unicode="&#xbe;" horiz-adv-x="1651"
d="M338 563q-119 0 -199 66.5t-114 185.5l168 45q17 -72 60 -104.5t91 -32.5q53 0 88 28.5t35 82.5q0 21 -7.5 41t-23.5 35.5t-41 24.5t-59 9h-64v160h62q54 0 78 28t24 68q0 42 -25 70t-73 28t-75.5 -27.5t-43.5 -72.5l-164 59q37 91 110.5 146t176.5 55q64 0 114 -20
t84.5 -54.5t53 -79.5t18.5 -96q0 -52 -27.5 -100.5t-72.5 -77.5q62 -28 96.5 -82t34.5 -117q0 -61 -22.5 -110.5t-62.5 -84.5t-96.5 -54t-123.5 -19zM1330 0v176h-435v109l441 581h157v-532h111v-158h-111v-176h-163zM1330 334v291l-224 -291h224zM266 -25l979 1483h195
l-979 -1483h-195z" />
<glyph glyph-name="threesuperior" unicode="&#xb3;" horiz-adv-x="711"
d="M338 893q-119 0 -199 66.5t-114 185.5l168 45q17 -72 60 -104.5t91 -32.5q53 0 88 28t35 82q0 22 -7.5 42t-23.5 35.5t-41 24.5t-59 9h-64v160h62q54 0 78 28t24 68q0 42 -25 70t-73 28t-75.5 -27.5t-43.5 -72.5l-164 59q37 91 110.5 146t176.5 55q64 0 114 -20
t84.5 -54.5t53 -79.5t18.5 -96q0 -53 -27.5 -101t-72.5 -77q62 -28 96.5 -82t34.5 -117q0 -62 -22.5 -111.5t-62.5 -84t-96.5 -53.5t-123.5 -19z" />
<glyph glyph-name="twosuperior" unicode="&#xb2;" horiz-adv-x="731"
d="M51 909q0 92 24 168t65.5 136t96 105t115.5 77q25 13 47 26t39 28t27 34t10 45q0 40 -30 70t-87 30q-58 0 -94.5 -35t-48.5 -98l-166 39q11 54 39 100.5t68.5 80.5t92 53.5t109.5 19.5q69 0 123.5 -19.5t92.5 -55t58.5 -84t20.5 -105.5t-18 -98t-49.5 -72t-74 -56.5
t-91.5 -50.5q-71 -37 -109.5 -82.5t-60.5 -95.5h401v-160h-600z" />
<glyph glyph-name="brokenbar" unicode="&#xa6;" horiz-adv-x="561"
d="M174 778v697h213v-697h-213zM174 -246v697h213v-697h-213z" />
<glyph glyph-name="multiply" unicode="&#xd7;"
d="M647 553l-323 -326l-154 154l326 324l-324 323l147 148l324 -324l324 326l153 -154l-325 -324l323 -323l-147 -148z" />
<glyph glyph-name="space" unicode=" " horiz-adv-x="471"
/>
<glyph glyph-name="exclam" unicode="!" horiz-adv-x="565"
d="M236 395l-60 609v454h213v-454l-59 -609h-94zM283 -25q-33 0 -61 12t-49 32.5t-32.5 47.5t-11.5 58t11.5 58.5t32.5 48t49 32.5t61 12q32 0 60.5 -12t49.5 -32.5t33 -48t12 -58.5t-12 -58t-33 -47.5t-49.5 -32.5t-60.5 -12z" />
<glyph glyph-name="quotedbl" unicode="&#x22;" horiz-adv-x="860"
d="M92 1434h266l-43 -574h-180zM502 1434h266l-43 -574h-180z" />
<glyph glyph-name="numbersign" unicode="#" horiz-adv-x="1393"
d="M260 0l59 387h-233l27 176h233l51 338h-233l26 176h234l55 357h183l-56 -357h285l55 357h182l-55 -357h234l-27 -176h-233l-52 -338h234l-27 -176h-233l-60 -387h-182l59 387h-284l-60 -387h-182zM528 563h285l51 338h-284z" />
<glyph glyph-name="dollar" unicode="$" horiz-adv-x="1196"
d="M813 1108q-12 31 -33.5 57.5t-51.5 46t-68.5 30.5t-86.5 11q-94 0 -147 -45t-53 -127q0 -51 30 -86.5t79.5 -62.5t112 -49.5t128.5 -49t128.5 -61t112 -84t79.5 -119t30 -166.5q0 -90 -28.5 -161.5t-78.5 -124.5t-118 -86.5t-146 -46.5v-185h-213v187
q-142 26 -242.5 114.5t-144.5 223.5l201 73q21 -48 51 -88t69 -68.5t86 -44.5t101 -16q55 0 99.5 14t76 42t49 69.5t17.5 95.5q0 64 -30 107.5t-79.5 75.5t-112 56t-128.5 49t-128.5 56t-112 76t-79.5 108t-30 154q0 66 22 126.5t65 109.5t106 83t144 48v166h213v-168
q61 -12 111.5 -37.5t89.5 -61t65.5 -80t41.5 -95.5z" />
<glyph glyph-name="percent" unicode="%" horiz-adv-x="1743"
d="M428 729q-92 0 -156 33t-104 85t-58 117t-18 130q0 60 17.5 124t57.5 117.5t104 88t157 34.5q92 0 156 -32.5t104 -85t58 -117.5t18 -129q0 -59 -17 -123.5t-56.5 -118t-104 -88.5t-158.5 -35zM428 893q42 0 73 16t51.5 43.5t30 64t9.5 77.5q0 43 -10 80t-30.5 63.5
t-51 41.5t-72.5 15t-73 -16t-51.5 -43t-30 -63.5t-9.5 -77.5q0 -44 10 -81t30.5 -63.5t51 -41.5t72.5 -15zM479 -25h-194l979 1483h194zM1315 -25q-92 0 -156 33t-104 85t-58 117t-18 130q0 60 17.5 124.5t57.5 118t104 88t157 34.5q92 0 156 -33t104 -85t58 -117.5
t18 -129.5q0 -59 -17 -123.5t-56.5 -118t-104 -88.5t-158.5 -35zM1315 139q42 0 73 16t51 43.5t30 64t10 77.5q0 44 -10 81t-30.5 63.5t-51.5 41.5t-72 15q-42 0 -73 -16t-51.5 -43t-30 -63.5t-9.5 -78.5q0 -44 10 -81t30.5 -63.5t51 -41.5t72.5 -15z" />
<glyph glyph-name="ampersand" unicode="&#x26;" horiz-adv-x="1436"
d="M1106 0l-123 152q-84 -81 -192 -129t-242 -48q-94 0 -172 29t-134.5 81.5t-88 127t-31.5 166.5q0 85 27 151t71.5 117.5t102 92t118.5 75.5q-37 46 -64.5 85t-46 76.5t-27.5 75.5t-9 83q0 76 27.5 136t75 101.5t111.5 63.5t138 22t137 -24.5t109.5 -68t73 -103.5
t26.5 -132q0 -65 -20 -117.5t-54 -95t-79 -77.5t-95 -66l226 -270q18 43 28.5 94t10.5 96h207q-2 -90 -27.5 -185t-73.5 -181l273 -328h-283zM578 176q83 0 152.5 37t123.5 96l-289 357q-45 -27 -83.5 -56t-67.5 -62.5t-45.5 -72.5t-16.5 -86q0 -48 16 -87t45.5 -67
t71 -43.5t93.5 -15.5zM500 1137q0 -26 10.5 -53t28 -54t40.5 -55t48 -57q34 21 63 43t51 46.5t34.5 53t12.5 61.5q0 36 -11.5 63.5t-32 46t-47 28.5t-56.5 10q-31 0 -57 -9.5t-44.5 -27t-29 -42t-10.5 -54.5z" />
<glyph glyph-name="quotesingle" unicode="'" horiz-adv-x="451"
d="M92 1434h266l-43 -574h-180z" />
<glyph glyph-name="parenleft" unicode="(" horiz-adv-x="707"
d="M393 -266q-47 61 -92 143t-80 187t-56.5 234t-21.5 284t23.5 288t61.5 243.5t87.5 196.5t100.5 148h209q-21 -24 -48.5 -68t-57.5 -104t-59 -136t-52.5 -165t-37.5 -190.5t-14 -212.5q0 -168 28.5 -307.5t68 -247.5t81.5 -182t68 -111h-209z" />
<glyph glyph-name="parenright" unicode=")" horiz-adv-x="707"
d="M104 -266q26 37 68 111t81.5 182t68 247.5t28.5 307.5q0 111 -14 212.5t-37 190.5t-52 165t-59 136t-58 103.5t-48 68.5h209q51 -62 100 -148t87.5 -196.5t61.5 -243.5t23 -288t-21.5 -284t-56.5 -234t-80 -187t-92 -143h-209z" />
<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="1085"
d="M590 791l-47 141l-47 -141l-142 -191l-153 113l139 190l115 86h-142l-211 70l60 182l211 -67l112 -80l-39 133v231h193v-231l-41 -135l115 82l211 67l59 -182l-211 -70h-143l116 -86l140 -190l-154 -113z" />
<glyph glyph-name="plus" unicode="+"
d="M752 600v-379h-213v379h-375v205h375v379h213v-379h374v-205h-374z" />
<glyph glyph-name="comma" unicode="," horiz-adv-x="457"
d="M84 -238q14 12 33.5 34.5t38.5 51t33.5 61t19.5 66.5q-27 3 -52 14t-43.5 30t-30 44t-11.5 56q0 35 12.5 63.5t33 49t48 31.5t57.5 11q32 0 61.5 -11.5t52 -34.5t35.5 -58t13 -82q0 -59 -17.5 -115t-47.5 -104.5t-70.5 -89t-85.5 -68.5z" />
<glyph glyph-name="hyphen" unicode="-" horiz-adv-x="809"
d="M154 506v205h501v-205h-501z" />
<glyph glyph-name="period" unicode="." horiz-adv-x="457"
d="M227 -25q-33 0 -61 12t-48.5 32.5t-32 47.5t-11.5 58t11.5 58.5t32 48t48.5 32.5t61 12q32 0 60.5 -12t49.5 -32.5t33.5 -48t12.5 -58.5t-12.5 -58t-33.5 -47.5t-49.5 -32.5t-60.5 -12z" />
<glyph glyph-name="slash" unicode="/" horiz-adv-x="1010"
d="M-31 -266l805 1724h215l-805 -1724h-215z" />
<glyph glyph-name="zero" unicode="0" horiz-adv-x="1331"
d="M666 -25q-99 0 -175.5 30.5t-133.5 83t-95.5 124t-62.5 154t-34.5 172t-10.5 178.5q0 82 9.5 169t33 169.5t61.5 155.5t95 128t134 87t179 32q99 0 175 -30.5t133 -83t96 -124t63 -154t34.5 -172t10.5 -177.5q0 -82 -10 -169.5t-33 -169.5t-61 -155.5t-95 -128.5
t-134.5 -87t-178.5 -32zM666 180q59 0 103 22.5t76.5 61.5t53.5 91t34 111.5t18 123.5t5 127q0 100 -13 196t-46 171.5t-89 122t-142 46.5q-59 0 -103.5 -22.5t-77 -61t-53.5 -90.5t-34 -111.5t-18 -124t-5 -126.5q0 -66 5.5 -132t18.5 -125.5t35 -110.5t54.5 -88.5t76 -59
t101.5 -21.5z" />
<glyph glyph-name="one" unicode="1" horiz-adv-x="827"
d="M307 0v1112h-235v158q52 0 97 8t81.5 27t63.5 50.5t42 78.5h164v-1434h-213z" />
<glyph glyph-name="two" unicode="2" horiz-adv-x="1262"
d="M156 1151q26 68 72 124.5t109 97t140 63t164 22.5q109 0 196 -31.5t147.5 -88t93 -134.5t32.5 -170q0 -91 -27.5 -159t-76.5 -121.5t-117.5 -97t-149.5 -85.5q-141 -74 -230.5 -161.5t-115.5 -200.5h729v-209h-989q0 147 43 265t115 211t165 163t193 121q46 24 89.5 51
t77 60.5t53.5 75t20 93.5q0 45 -18.5 83.5t-51.5 67.5t-79 45.5t-101 16.5q-117 0 -186 -51t-103 -139z" />
<glyph glyph-name="three" unicode="3" horiz-adv-x="1239"
d="M604 -25q-95 0 -174.5 23.5t-142.5 67t-110 104t-77 135.5l199 80q25 -56 58.5 -95t73.5 -63.5t84 -35.5t89 -11q58 0 109 13.5t89 42t60.5 72.5t22.5 106q0 47 -15.5 88.5t-49 73t-85.5 49.5t-125 18h-110v205h110q50 0 90.5 14.5t69.5 40t45 61t16 78.5
q0 100 -57.5 155.5t-169.5 55.5q-51 0 -91 -13.5t-70.5 -35.5t-53.5 -51.5t-39 -60.5l-198 75q25 65 67.5 118.5t100 92t130.5 59.5t160 21q97 0 178.5 -31.5t140.5 -85.5t91.5 -125.5t32.5 -152.5q0 -100 -45.5 -181.5t-139.5 -129.5q54 -22 98 -53.5t75 -72.5t48 -92
t17 -112q0 -108 -38 -191.5t-105 -140.5t-159 -86t-200 -29z" />
<glyph glyph-name="four" unicode="4" horiz-adv-x="1325"
d="M803 0v326h-772v137l733 971h252v-912h186v-196h-186v-326h-213zM803 522v654l-490 -654h490z" />
<glyph glyph-name="five" unicode="5" horiz-adv-x="1241"
d="M164 725l49 709h805v-205h-606l-31 -365q45 32 115.5 55t158.5 23q115 0 200.5 -39t142 -103.5t84.5 -147.5t28 -171q0 -115 -41 -208.5t-113.5 -159.5t-173.5 -102t-221 -36q-87 0 -156.5 12t-124 31t-93.5 42.5t-64 45.5l127 170q25 -17 54 -34t66 -31t83.5 -22.5
t107.5 -8.5q74 0 134.5 21.5t103.5 60.5t66.5 93.5t23.5 119.5q0 64 -19 113t-54 82t-83.5 50t-107.5 17q-75 0 -131.5 -26t-98.5 -72z" />
<glyph glyph-name="six" unicode="6" horiz-adv-x="1229"
d="M631 -25q-126 0 -219.5 42.5t-155.5 117.5t-92.5 176.5t-30.5 218.5q0 179 46.5 333.5t143 275t244.5 202.5t351 117v-205q-89 -14 -172.5 -47t-153.5 -88.5t-123.5 -134.5t-81.5 -184q21 20 50 38.5t66.5 32.5t82.5 22.5t96 8.5q97 0 179 -33.5t140.5 -95t91.5 -147
t33 -189.5q0 -103 -36 -188t-101 -145.5t-156 -94t-202 -33.5zM631 180q60 0 110.5 17t86.5 50t56.5 80.5t20.5 108.5q0 62 -20.5 110.5t-56.5 81.5t-86.5 50.5t-110.5 17.5t-111 -17.5t-87.5 -50.5t-57.5 -81.5t-21 -110.5q0 -61 21 -108.5t57.5 -80.5t87.5 -50t111 -17z
" />
<glyph glyph-name="seven" unicode="7" horiz-adv-x="1100"
d="M371 0q1 183 28 343.5t78.5 308.5t127.5 288.5t177 284.5h-731v209h967v-232q-80 -93 -143 -196.5t-110 -210.5t-80 -215t-53.5 -210.5t-30 -196.5t-9.5 -173h-221z" />
<glyph glyph-name="eight" unicode="8" horiz-adv-x="1260"
d="M629 -25q-111 0 -202.5 33t-157 92.5t-101 141t-35.5 178.5q0 66 17.5 121.5t49 100.5t76 80.5t97.5 61.5q-85 48 -131.5 121t-46.5 178q0 80 31 148.5t88 119t137 79t178 28.5t178.5 -28.5t137.5 -79t88.5 -119t31.5 -148.5q0 -103 -47 -176t-133 -123q54 -26 98 -61.5
t76 -80.5t49.5 -100.5t17.5 -121.5q0 -97 -36 -178.5t-101 -141t-157 -92.5t-203 -33zM629 180q60 0 110.5 18t87 50.5t57.5 78t21 99.5q0 52 -21 98.5t-57.5 81t-87 54.5t-110.5 20q-61 0 -111.5 -20t-87 -54.5t-56.5 -81t-20 -98.5q0 -54 20 -99.5t56.5 -78t87 -50.5
t111.5 -18zM629 885q48 0 88.5 14.5t69.5 40t45 59.5t16 72q0 42 -16 75.5t-45 57t-69.5 36.5t-88.5 13t-88 -13t-68.5 -36.5t-44.5 -57t-16 -75.5q0 -38 16 -72t44.5 -59.5t68.5 -40t88 -14.5z" />
<glyph glyph-name="nine" unicode="9" horiz-adv-x="1229"
d="M352 193q82 4 161 26.5t146 72.5t116.5 133.5t72.5 211.5q-16 -18 -42.5 -37t-62.5 -34t-81.5 -24.5t-98.5 -9.5q-100 0 -184.5 33t-146 93.5t-96 146.5t-34.5 192q0 103 36.5 188t102 145.5t157 94t202.5 33.5q129 0 222.5 -42.5t154.5 -116.5t90 -176t29 -220
q0 -201 -45 -367.5t-136.5 -288t-232 -192.5t-330.5 -80v218zM598 750q61 0 111.5 17t86 49.5t55 78.5t19.5 104q0 55 -20 100t-56 76.5t-85.5 48.5t-108.5 17q-60 0 -110 -17t-86 -48.5t-56 -77t-20 -101.5q0 -59 19 -105t54.5 -77.5t85 -48t111.5 -16.5z" />
<glyph glyph-name="colon" unicode=":" horiz-adv-x="457"
d="M227 690q-33 0 -61 12t-48.5 32.5t-32 47.5t-11.5 58t11.5 58.5t32 48t48.5 32.5t61 12q32 0 60.5 -12t49.5 -32.5t33.5 -48t12.5 -58.5t-12.5 -58t-33.5 -47.5t-49.5 -32.5t-60.5 -12zM227 -25q-33 0 -61 12t-48.5 32.5t-32 47.5t-11.5 58t11.5 58.5t32 48t48.5 32.5
t61 12q32 0 60.5 -12t49.5 -32.5t33.5 -48t12.5 -58.5t-12.5 -58t-33.5 -47.5t-49.5 -32.5t-60.5 -12z" />
<glyph glyph-name="semicolon" unicode=";" horiz-adv-x="457"
d="M225 690q-33 0 -61 12t-48.5 32.5t-32 47.5t-11.5 58t11.5 58.5t32 48t48.5 32.5t61 12q32 0 60.5 -12t49.5 -32.5t33.5 -48t12.5 -58.5t-12.5 -58t-33.5 -47.5t-49.5 -32.5t-60.5 -12zM84 -238q14 12 33.5 34.5t38.5 51t33.5 61t19.5 66.5q-27 3 -52 14t-43.5 30t-30 44
t-11.5 56q0 35 12.5 63.5t33 49t48 31.5t57.5 11q32 0 61.5 -11.5t52 -34.5t35.5 -58t13 -82q0 -59 -17.5 -115t-47.5 -104.5t-70.5 -89t-85.5 -68.5z" />
<glyph glyph-name="less" unicode="&#x3c;"
d="M1126 221l-962 391v181l962 391v-215l-671 -267l671 -266v-215z" />
<glyph glyph-name="equal" unicode="="
d="M164 401v205h962v-205h-962zM164 799v205h962v-205h-962z" />
<glyph glyph-name="greater" unicode="&#x3e;"
d="M1126 612l-962 -391v215l672 266l-672 267v215l962 -391v-181z" />
<glyph glyph-name="question" unicode="?" horiz-adv-x="1026"
d="M387 389v41q0 73 15 128t40 97.5t57 75.5t65 61t65 54.5t57 56.5t40 66t15 84q0 44 -14.5 81.5t-43 64.5t-70.5 42.5t-97 15.5q-125 0 -193.5 -72.5t-68.5 -205.5h-213q0 112 35 201t98 150.5t150.5 94.5t191.5 33q107 0 188.5 -31t137 -85.5t84 -128.5t28.5 -160
q0 -84 -26 -142t-65.5 -102.5t-85.5 -81.5t-85.5 -78.5t-65.5 -93.5t-26 -127v-39h-213zM492 -25q-33 0 -61.5 12t-49 32.5t-32 47.5t-11.5 58t11.5 58.5t32 48t49 32.5t61.5 12q32 0 60.5 -12t49.5 -32.5t33 -48t12 -58.5t-12 -58t-33 -47.5t-49.5 -32.5t-60.5 -12z" />
<glyph glyph-name="at" unicode="@" horiz-adv-x="1677"
d="M1069 -10q-98 -15 -217 -15q-158 0 -292 47.5t-231 138.5t-151.5 224.5t-54.5 304.5q0 113 26.5 213.5t75.5 186t117 153.5t151.5 116t179 73.5t199.5 25.5q156 0 282 -48.5t215 -132.5t137 -196t48 -239q0 -111 -31.5 -205t-85 -161.5t-123.5 -105.5t-147 -38
q-26 0 -51 8t-45 23.5t-34.5 38t-18.5 51.5q-42 -66 -103 -97.5t-137 -31.5q-66 0 -120.5 25.5t-93 71.5t-60 110.5t-21.5 142.5q0 77 26.5 153t75.5 136t117 97.5t152 37.5q68 0 119.5 -28t83.5 -91l16 92h182l-65 -346q-12 -66 -20.5 -114t-8.5 -74q0 -29 9 -40.5
t26 -11.5q34 0 67 28t59.5 76.5t43 113t16.5 137.5q0 94 -34 176.5t-98.5 143t-157.5 95.5t-211 35q-126 0 -231 -46.5t-180 -127.5t-117 -191t-42 -237q0 -129 37.5 -230.5t108.5 -171t173 -106.5t230 -37q69 0 132 7.5t120 21.5zM809 500q47 0 84 23t63 59t40 81t14 89
q0 77 -35.5 123.5t-104.5 46.5q-44 0 -81 -20t-64 -54.5t-42 -79.5t-15 -96q0 -78 37.5 -125t103.5 -47z" />
<glyph glyph-name="A" unicode="A" horiz-adv-x="1425"
d="M1118 0l-114 330h-580l-117 -330h-221l518 1434h219l516 -1434h-221zM764 1006q-12 34 -26.5 79t-22.5 82q-10 -37 -23.5 -81.5t-25.5 -79.5l-177 -488h449z" />
<glyph glyph-name="B" unicode="B" horiz-adv-x="1364"
d="M184 1434h543q128 0 215 -32.5t140 -86t75.5 -122.5t22.5 -142q0 -90 -49 -169.5t-148 -127.5q67 -24 114 -60.5t77 -80.5t43.5 -93.5t13.5 -99.5q0 -73 -24.5 -148t-80.5 -135.5t-146.5 -98.5t-221.5 -38h-574v1434zM774 197q71 0 117.5 19t73.5 49.5t38 68.5t11 76
q0 45 -13 87.5t-47 75t-92.5 52.5t-148.5 20h-316v-448h377zM692 842q67 0 118 14.5t85 41t51 62.5t17 80q0 35 -9 70t-34.5 63.5t-70 46t-116.5 17.5h-336v-395h295z" />
<glyph glyph-name="C" unicode="C" horiz-adv-x="1331"
d="M729 -25q-111 0 -198.5 30.5t-153.5 83t-112.5 124t-75.5 154t-42.5 172t-13.5 178.5q0 82 13.5 169t43 169.5t76.5 155.5t113 128t153 87t197 32q101 0 182 -24.5t141.5 -64.5t101.5 -91t63 -104l-195 -91q-26 41 -54.5 72.5t-63 53.5t-77.5 33t-98 11q-72 0 -127.5 -23
t-97 -63t-70.5 -93t-46.5 -112.5t-25.5 -122.5t-8 -122q0 -95 21.5 -191t67.5 -173t117 -125t169 -48q53 0 95.5 13.5t78 38t64 58.5t53.5 75l199 -76q-30 -70 -74.5 -128t-105 -99t-138 -64t-172.5 -23z" />
<glyph glyph-name="D" unicode="D" horiz-adv-x="1403"
d="M184 1434h402q125 0 224 -28.5t175 -78.5t130 -118.5t88.5 -148t50.5 -167.5t16 -176q0 -82 -14.5 -167.5t-48 -165t-86.5 -149.5t-130 -122.5t-179.5 -82.5t-233.5 -30h-394v1434zM612 201q82 0 146.5 21.5t113 58.5t82 87t55 107.5t31 119t9.5 122.5q0 97 -23.5 189.5
t-73.5 165t-128.5 117t-188.5 44.5h-238v-1032h215z" />
<glyph glyph-name="E" unicode="E" horiz-adv-x="1231"
d="M184 0v1434h889v-201h-676v-393h437v-201h-437v-438h721v-201h-934z" />
<glyph glyph-name="F" unicode="F" horiz-adv-x="1145"
d="M184 0v1434h889v-201h-676v-393h437v-201h-437v-639h-213z" />
<glyph glyph-name="G" unicode="G" horiz-adv-x="1413"
d="M758 -25q-111 0 -200 29t-158.5 80t-120 121.5t-83 152.5t-48 173.5t-15.5 185.5q0 87 16.5 176t50.5 171.5t85 154.5t120.5 125t157.5 83.5t195 30.5q103 0 179.5 -22.5t134.5 -60.5t100 -87t75 -102l-192 -111q-25 35 -53.5 66.5t-64.5 55.5t-80 38t-99 14
q-78 0 -138.5 -23t-105 -62.5t-75.5 -92t-49.5 -111.5t-27 -121.5t-8.5 -121.5q0 -103 23 -199t72 -170.5t125.5 -119t183.5 -44.5q67 0 123 23.5t96 64.5t62 96t22 119v29h-258v201h477v-187q0 -135 -40 -238.5t-110.5 -174t-165.5 -106.5t-206 -36z" />
<glyph glyph-name="H" unicode="H" horiz-adv-x="1448"
d="M1051 0v639h-654v-639h-213v1434h213v-594h654v594h213v-1434h-213z" />
<glyph glyph-name="I" unicode="I" horiz-adv-x="602"
d="M195 0v1434h213v-1434h-213z" />
<glyph glyph-name="J" unicode="J" horiz-adv-x="1157"
d="M506 -25q-77 0 -146 17.5t-127.5 51.5t-104.5 84.5t-77 117.5l185 90q38 -81 107 -118.5t163 -37.5q51 0 98.5 13t84 49t59 100.5t22.5 167.5v924h213v-953q0 -100 -20.5 -176.5t-55 -133t-81.5 -94t-100 -60.5t-109.5 -32.5t-110.5 -9.5z" />
<glyph glyph-name="K" unicode="K" horiz-adv-x="1386"
d="M1055 0l-404 750l-254 -308v-442h-213v1434h213v-695l553 695h246l-401 -504l510 -930h-250z" />
<glyph glyph-name="L" unicode="L" horiz-adv-x="1190"
d="M184 0v1434h213v-1229h701v-205h-914z" />
<glyph glyph-name="M" unicode="M" horiz-adv-x="1647"
d="M1249 0v784l6 215l-84 -221l-346 -803l-348 809l-86 215l6 -215v-784h-213v1434h215l385 -895l39 -105l41 105l383 895h215v-1434h-213z" />
<glyph glyph-name="N" unicode="N" horiz-adv-x="1454"
d="M1069 0l-620 973l-58 106l6 -106v-973h-213v1434h215l605 -957l59 -110l-6 108v959h213v-1434h-201z" />
<glyph glyph-name="O" unicode="O" horiz-adv-x="1516"
d="M758 -25q-115 0 -206 30.5t-160.5 83t-118.5 124t-80 154t-45.5 172t-14.5 178.5q0 88 14.5 177.5t45.5 172t80 154t118.5 124t160.5 83t206 30.5t206 -30.5t160.5 -83t118.5 -124t80 -154t45 -172t14 -177.5q0 -89 -14 -178.5t-45 -172t-80 -154t-118.5 -124t-160.5 -83
t-206 -30.5zM758 180q75 0 134 23.5t103.5 63.5t76 93.5t51.5 113t29 122t9 121.5q0 62 -9 126.5t-29 124t-51.5 111.5t-76 90.5t-103.5 61t-134 22.5t-134 -23.5t-104 -63.5t-76.5 -93.5t-51.5 -113t-29 -122t-9 -120.5q0 -94 21 -189.5t69 -173t125 -126t189 -48.5z" />
<glyph glyph-name="P" unicode="P" horiz-adv-x="1315"
d="M184 0v1434h576q132 0 222.5 -38.5t146 -100.5t80 -140.5t24.5 -159.5q0 -50 -11.5 -102t-35.5 -100.5t-62 -91.5t-90.5 -75t-120.5 -50.5t-153 -18.5h-363v-557h-213zM772 762q67 0 112.5 21t74 54.5t41 75t12.5 82.5q0 38 -11 79t-38 75.5t-73.5 57t-117.5 22.5h-375
v-467h375z" />
<glyph glyph-name="Q" unicode="Q" horiz-adv-x="1516"
d="M758 -25q-115 0 -206 30.5t-160.5 83t-118.5 124t-80 154t-45.5 172t-14.5 178.5q0 88 14.5 177.5t45.5 172t80 154t118.5 124t160.5 83t206 30.5t206 -30.5t160.5 -83t118.5 -124t80 -154t45 -172t14 -177.5q0 -83 -12.5 -166.5t-39 -162t-69 -148t-102.5 -123.5
l96 -144l-163 -110l-103 151q-51 -18 -108 -28.5t-123 -10.5zM758 180q29 0 56.5 3.5t51.5 11.5l-108 163l168 111l106 -162q34 41 58.5 90.5t40.5 103t23 109t7 107.5q0 62 -9 126.5t-29 124t-51.5 111.5t-76 90.5t-103.5 61t-134 22.5t-134 -23.5t-104 -63.5t-76.5 -93.5
t-51.5 -113t-29 -122t-9 -120.5q0 -94 21 -189.5t69 -173t125 -126t189 -48.5z" />
<glyph glyph-name="R" unicode="R" horiz-adv-x="1384"
d="M184 0v1434h604q132 0 221 -36t143 -95.5t76.5 -135.5t22.5 -157q0 -62 -18 -125t-55.5 -118.5t-96.5 -98t-141 -64.5l295 -604h-244l-282 586h-312v-586h-213zM793 791q67 0 112 18.5t73 49.5t40 70t12 81q0 37 -10.5 76t-37.5 71t-73 52t-116 20h-396v-438h396z" />
<glyph glyph-name="S" unicode="S" horiz-adv-x="1237"
d="M854 1108q-13 31 -36 57.5t-56 46t-75.5 30.5t-94.5 11q-103 0 -161 -45t-58 -127q0 -51 32 -86.5t84 -62.5t118.5 -49.5t136 -49t136 -61t118.5 -84t84 -119t32 -166.5q0 -103 -37.5 -182.5t-103.5 -134t-155.5 -83t-192.5 -28.5q-96 0 -179.5 24.5t-151 70t-116.5 110
t-76 144.5l201 73q22 -48 54.5 -88t74.5 -68.5t92.5 -44.5t108.5 -16t106 14t82 42t53 69.5t19 95.5q0 64 -32 107.5t-84 75.5t-118.5 56t-136 49t-136 56t-118.5 76t-84 108t-32 154q0 76 30.5 144t88.5 119.5t143 81.5t194 30q91 0 165 -21.5t129.5 -59.5t92.5 -90
t56 -113z" />
<glyph glyph-name="T" unicode="T" horiz-adv-x="1208"
d="M711 1229v-1229h-213v1229h-406v205h1024v-205h-405z" />
<glyph glyph-name="U" unicode="U" horiz-adv-x="1427"
d="M713 -25q-111 0 -209.5 29t-171.5 95.5t-115.5 175t-42.5 268.5v891h213v-891q0 -108 25 -178t68.5 -111t103.5 -57.5t129 -16.5t128.5 16.5t104 57.5t69.5 111t25 178v891h213v-891q0 -158 -41 -266.5t-113.5 -175.5t-171.5 -96.5t-214 -29.5z" />
<glyph glyph-name="V" unicode="V" horiz-adv-x="1358"
d="M786 0h-213l-491 1434h229l326 -1000q9 -29 21.5 -71.5t23.5 -92.5q11 50 23.5 92.5t21.5 71.5l322 1000h227z" />
<glyph glyph-name="W" unicode="W" horiz-adv-x="1745"
d="M1653 1434l-310 -1434h-192l-248 930q-15 57 -23.5 92.5t-11.5 62.5q-3 -27 -11 -62.5t-23 -92.5l-242 -930h-193l-307 1434h219l178 -883q13 -62 20.5 -100t10.5 -66q3 28 12.5 65.5t24.5 100.5l225 883h179l231 -881q17 -62 25.5 -99t11.5 -65q3 28 9.5 66t18.5 98
l181 881h215z" />
<glyph glyph-name="X" unicode="X" horiz-adv-x="1331"
d="M102 0l441 741l-410 693h246l287 -486l286 486h246l-410 -693l441 -741h-246l-317 535l-318 -535h-246z" />
<glyph glyph-name="Y" unicode="Y" horiz-adv-x="1364"
d="M575 0v561l-503 873h243l367 -656l367 656h243l-504 -871v-563h-213z" />
<glyph glyph-name="Z" unicode="Z" horiz-adv-x="1356"
d="M113 0v172l827 1057h-780v205h1063v-172l-830 -1057h830v-205h-1110z" />
<glyph glyph-name="bracketleft" unicode="[" horiz-adv-x="762"
d="M205 -266v1724h475v-201h-262v-1323h262v-200h-475z" />
<glyph glyph-name="backslash" unicode="\" horiz-adv-x="1010"
d="M774 -266l-805 1724h215l805 -1724h-215z" />
<glyph glyph-name="bracketright" unicode="]" horiz-adv-x="762"
d="M557 -266h-475v200h262v1323h-262v201h475v-1724z" />
<glyph glyph-name="asciicircum" unicode="^"
d="M928 717l-283 471l-283 -471h-219l412 741h180l412 -741h-219z" />
<glyph glyph-name="underscore" unicode="_" horiz-adv-x="1024"
d="M-10 -362v184h1044v-184h-1044z" />
<glyph glyph-name="grave" unicode="`" horiz-adv-x="819"
d="M451 1180l-365 319h291l291 -319h-217z" />
<glyph glyph-name="a" unicode="a" horiz-adv-x="1090"
d="M956 0h-204v90q-20 -21 -48 -41.5t-63.5 -37t-79.5 -26.5t-96 -10q-80 0 -148 22t-118 66.5t-78.5 110t-28.5 152.5q0 90 34 155.5t90 108t128.5 62.5t149.5 20q72 0 138.5 -15.5t119.5 -46.5v58q0 59 -13.5 100t-41 66.5t-69.5 37t-100 11.5q-98 0 -169.5 -26
t-129.5 -69l-63 175q32 22 73 41.5t90 34.5t106 23.5t122 8.5q44 0 91 -5t91.5 -19.5t84 -41.5t69 -70.5t46.5 -106.5t17 -150v-678zM504 164q81 0 143.5 33t104.5 79v160q-44 23 -103 37t-121 14q-48 0 -90 -9t-73.5 -28.5t-49.5 -50t-18 -73.5q0 -75 52.5 -118.5
t154.5 -43.5z" />
<glyph glyph-name="b" unicode="b" horiz-adv-x="1151"
d="M614 -25q-45 0 -81.5 8.5t-66.5 23t-54 34.5t-45 43v-84h-213v1380l213 99v-512q40 45 100.5 74.5t146.5 29.5q96 0 176 -37t137.5 -107.5t89.5 -172t32 -230.5q0 -133 -30 -235.5t-86.5 -172t-137 -105.5t-181.5 -36zM588 176q61 0 107 24.5t77.5 69.5t47.5 109.5
t16 144.5q0 169 -63.5 257.5t-184.5 88.5q-41 0 -76 -11t-63.5 -28t-49 -38t-32.5 -41v-457q35 -57 92.5 -88t128.5 -31z" />
<glyph glyph-name="c" unicode="c" horiz-adv-x="1061"
d="M559 -25q-105 0 -189.5 37t-144 107.5t-91.5 172t-32 230.5t32 231t91.5 172.5t144 108t189.5 37.5q146 0 247.5 -65t147.5 -205l-202 -70q-23 60 -70 97.5t-115 37.5q-60 0 -106 -24t-77.5 -68.5t-48 -108t-16.5 -143.5t16.5 -143.5t47 -107.5t75 -67.5t101.5 -23.5
q72 0 123.5 40t73.5 114l202 -64q-42 -146 -142.5 -220.5t-256.5 -74.5z" />
<glyph glyph-name="d" unicode="d" horiz-adv-x="1151"
d="M537 -25q-99 0 -179.5 37.5t-137.5 108t-87.5 172.5t-30.5 231t32 230.5t89.5 172t137.5 107.5t176 37q86 0 146.5 -28t100.5 -70v407l213 99v-1479h-213v74q-42 -47 -100.5 -73t-146.5 -26zM567 176q72 0 127 31t90 88v461q-12 20 -32 40t-47.5 36.5t-62 27t-75.5 10.5
q-120 0 -186 -88.5t-66 -257.5q0 -76 17.5 -139.5t50 -110t79 -72.5t105.5 -26z" />
<glyph glyph-name="e" unicode="e" horiz-adv-x="1120"
d="M578 -25q-109 0 -197 37.5t-150 108t-95.5 172.5t-33.5 231t34 230.5t96.5 172t150 107.5t195.5 37q93 0 174.5 -29.5t143 -90t97 -152.5t35.5 -217q0 -34 -1.5 -72t-6.5 -66h-705q1 -65 23.5 -116.5t59.5 -88t84 -56t98 -19.5q65 0 120.5 27t96.5 79l139 -143
q-57 -68 -146 -110t-212 -42zM578 883q-50 0 -96 -14.5t-81.5 -46t-58.5 -82.5t-27 -124h500q-2 73 -23 124t-55 82.5t-75.5 46t-83.5 14.5z" />
<glyph glyph-name="f" unicode="f" horiz-adv-x="686"
d="M440 862v-862h-213v862h-155v185h155v167q0 72 21 119.5t54.5 75t76.5 38.5t88 11q62 0 112 -13t97 -36v-176q-48 20 -83 28.5t-67 8.5q-26 0 -42.5 -7t-26.5 -20t-13.5 -30t-3.5 -37v-129h236v-185h-236z" />
<glyph glyph-name="g" unicode="g" horiz-adv-x="1151"
d="M397 -246q115 7 190 27t119 50.5t61 71.5t17 89v92q-87 -109 -252 -109q-90 0 -168 34.5t-136.5 103.5t-92 171.5t-33.5 239.5q0 129 32 230.5t89.5 172t137.5 107.5t176 37q46 0 84 -8.5t68.5 -22.5t54 -31.5t40.5 -35.5v74h213v-967q0 -120 -24 -204t-82 -144
q-39 -40 -85.5 -65.5t-97 -41.5t-102.5 -23.5t-102 -11.5zM571 176q65 0 121.5 32t91.5 91v453q-16 26 -39.5 47.5t-51 37.5t-59 24.5t-63.5 8.5q-125 0 -190.5 -88.5t-65.5 -257.5q0 -80 18 -144.5t51 -109.5t80.5 -69.5t106.5 -24.5z" />
<glyph glyph-name="h" unicode="h" horiz-adv-x="1157"
d="M801 0v625q0 66 -16 112.5t-44 76t-66 43t-83 13.5q-48 0 -89 -12.5t-71 -40.5t-47.5 -74.5t-17.5 -113.5v-629h-213v1380l213 99v-533q51 65 117 95t153 30q82 0 151 -23.5t119.5 -76.5t78.5 -138t28 -208v-625h-213z" />
<glyph glyph-name="i" unicode="i" horiz-adv-x="524"
d="M156 0v1047h213v-1047h-213zM262 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="j" unicode="j" horiz-adv-x="524"
d="M-129 -281q81 18 135.5 39.5t87.5 51.5t47.5 70.5t14.5 96.5v1070h213v-998q0 -46 -4 -91.5t-15 -88.5t-30 -81.5t-50 -70.5q-36 -38 -74 -64t-76 -43.5t-75 -29t-72 -18.5zM262 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10
t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="k" unicode="k" horiz-adv-x="1126"
d="M154 0v1378l213 101v-756l309 324h262l-287 -291l393 -756h-233l-309 602l-135 -135v-467h-213z" />
<glyph glyph-name="l" unicode="l" horiz-adv-x="541"
d="M164 0v1378l213 101v-1479h-213z" />
<glyph glyph-name="m" unicode="m" horiz-adv-x="1739"
d="M1382 0v627q0 117 -48 180t-144 63q-43 0 -81 -16t-66.5 -48t-45 -79.5t-16.5 -110.5v-616h-213v627q0 117 -48.5 180t-144.5 63q-43 0 -80.5 -16t-66 -48t-45 -79.5t-16.5 -110.5v-616h-213v1047h213v-97q45 65 114 93t150 28q86 0 159.5 -34.5t118.5 -114.5
q50 77 128 113t182 36q80 0 148.5 -23t119 -71t79.5 -123t29 -178v-676h-213z" />
<glyph glyph-name="n" unicode="n" horiz-adv-x="1157"
d="M801 0v625q0 66 -16 112.5t-44 76t-66 43t-83 13.5q-48 0 -89 -12.5t-71 -40.5t-47.5 -74.5t-17.5 -113.5v-629h-213v1047h213v-101q51 65 117 95t153 30q82 0 151 -23.5t119.5 -76.5t78.5 -138t28 -208v-625h-213z" />
<glyph glyph-name="o" unicode="o" horiz-adv-x="1161"
d="M580 -25q-110 0 -198.5 37t-150.5 107.5t-95.5 172t-33.5 230.5t33.5 231t95.5 172.5t150.5 108t198.5 37.5q109 0 198 -37.5t151 -108t96 -172.5t34 -231t-34 -230.5t-96 -172t-151 -107.5t-198 -37zM580 176q61 0 110.5 24t84 68.5t53 108.5t18.5 145t-18.5 145.5
t-53 109.5t-84 69t-110.5 24t-110 -24t-83.5 -69t-53 -109.5t-18.5 -145.5t18.5 -145t53 -108.5t83.5 -68.5t110 -24z" />
<glyph glyph-name="p" unicode="p" horiz-adv-x="1151"
d="M618 -25q-46 0 -83.5 9t-68.5 25t-55.5 36.5t-43.5 44.5v-403l-213 -99v1459h213v-84q41 46 101 77t150 31q99 0 179 -37.5t136 -108t86 -172.5t30 -231t-31.5 -230.5t-88 -172t-136 -107.5t-175.5 -37zM588 176q121 0 184.5 89t63.5 257q0 76 -16.5 140t-48.5 110
t-78 72t-105 26q-75 0 -130.5 -30.5t-90.5 -87.5v-455q18 -24 40.5 -46t50 -38.5t60 -26.5t70.5 -10z" />
<glyph glyph-name="q" unicode="q" horiz-adv-x="1151"
d="M537 -25q-96 0 -176 37t-137.5 107.5t-89.5 172t-32 230.5t30.5 231t87.5 172.5t137.5 108t179.5 37.5q87 0 146.5 -31t100.5 -77v84h213v-1360l-213 -97v500q-42 -51 -101.5 -83t-145.5 -32zM563 176q41 0 75 11.5t61.5 29t48.5 39t36 41.5v455q-37 60 -93.5 89
t-127.5 29q-59 0 -105 -26t-78 -72t-48.5 -110t-16.5 -140q0 -168 63.5 -257t184.5 -89z" />
<glyph glyph-name="r" unicode="r" horiz-adv-x="827"
d="M154 0v1047h213v-127q37 80 96 115.5t137 35.5q104 0 176 -63l-31 -197q-29 20 -68.5 35.5t-96.5 15.5q-36 0 -73.5 -12.5t-68.5 -44t-51 -84t-20 -133.5v-588h-213z" />
<glyph glyph-name="s" unicode="s" horiz-adv-x="973"
d="M477 -25q-62 0 -121 12t-110.5 34t-93.5 53.5t-70 70.5l151 129q16 -15 39 -33.5t53 -34.5t67 -27t81 -11q40 0 74 6t58.5 19t38 34.5t13.5 53.5q0 37 -25.5 63.5t-66.5 48t-93 41t-105 41.5q-49 21 -96 46t-83.5 60t-59 83.5t-22.5 117.5q0 70 28.5 124t78 90.5
t116 55.5t142.5 19q67 0 123.5 -13t102 -35t80.5 -50.5t61 -59.5l-154 -122q-14 14 -33.5 29.5t-45.5 28.5t-59 21.5t-75 8.5q-68 0 -107.5 -25t-39.5 -72q0 -30 21 -52.5t57 -41.5t82.5 -36.5t97.5 -37.5q54 -21 106 -47t92.5 -64t65 -92t24.5 -130q0 -75 -28 -132.5
t-79.5 -96t-124 -58t-161.5 -19.5z" />
<glyph glyph-name="t" unicode="t" horiz-adv-x="776"
d="M457 -25q-62 0 -106.5 18.5t-73 52.5t-41.5 82.5t-13 107.5v626h-162v185h162v329l213 103v-432h248v-185h-248v-571q0 -26 4.5 -48t16 -38t31.5 -24.5t51 -8.5q76 0 155 49l-26 -198q-44 -22 -96 -35t-115 -13z" />
<glyph glyph-name="u" unicode="u" horiz-adv-x="1157"
d="M791 0v100q-51 -65 -117.5 -95t-153.5 -30q-82 0 -151 23.5t-119.5 77t-78.5 138.5t-28 208v625h213v-625q0 -66 16 -112.5t44 -76.5t66 -43.5t83 -13.5q48 0 89 12.5t71.5 41t48 74.5t17.5 114v629h213v-1047h-213z" />
<glyph glyph-name="v" unicode="v" horiz-adv-x="1067"
d="M633 0h-199l-383 1047h213l242 -687q9 -27 15.5 -47t13.5 -45q6 25 12.5 45t15.5 47l240 687h213z" />
<glyph glyph-name="w" unicode="w" horiz-adv-x="1487"
d="M1137 0h-189l-174 608q-5 18 -10.5 37t-10 36.5t-8 32.5t-4.5 25q-2 -10 -4.5 -25.5t-6.5 -33.5t-9 -37t-10 -37l-172 -606h-189l-278 1047h209l147 -652q8 -34 12.5 -59.5t8.5 -46.5q3 21 8.5 48t13.5 58l174 652h197l174 -652q8 -31 13.5 -58t8.5 -48q3 21 8 46.5
t13 59.5l147 652h209z" />
<glyph glyph-name="x" unicode="x" horiz-adv-x="1085"
d="M770 0l-174 270q-17 26 -29.5 50.5t-23.5 44.5q-10 -20 -23.5 -44.5t-30.5 -50.5l-174 -270h-243l348 545l-320 502h244l145 -228q17 -28 30.5 -51t23.5 -43q11 20 23.5 44t29.5 50l145 228h244l-321 -502l350 -545h-244z" />
<glyph glyph-name="y" unicode="y" horiz-adv-x="1102"
d="M498 -397h-217l161 415l-391 1029h211l258 -685q11 -29 17 -48t12 -44q6 25 12 44t17 48l260 685h213z" />
<glyph glyph-name="z" unicode="z" horiz-adv-x="1047"
d="M113 0v174l555 684h-514v189h770v-168l-555 -691h553v-188h-809z" />
<glyph glyph-name="braceleft" unicode="{" horiz-adv-x="750"
d="M668 -266q-98 2 -177.5 33t-136 90.5t-87.5 148t-31 205.5v121q0 77 -31.5 124.5t-91.5 47.5h-31v186h31q60 0 91.5 47.5t31.5 124.5v119q0 117 31 205.5t87.5 148t136 90.5t177.5 33v-188q-110 -5 -164.5 -69.5t-54.5 -182.5v-133q0 -76 -13 -128t-37.5 -85t-61 -51
t-83.5 -25q47 -8 83.5 -25.5t61 -50.5t37.5 -85t13 -128v-133q0 -118 54.5 -182.5t164.5 -69.5v-188z" />
<glyph glyph-name="bar" unicode="|" horiz-adv-x="561"
d="M174 -420v2069h213v-2069h-213z" />
<glyph glyph-name="braceright" unicode="}" horiz-adv-x="750"
d="M82 -78q109 5 164 69.5t55 182.5v133q0 76 13 128t37.5 85t61 50.5t83.5 25.5q-47 7 -83.5 25t-61 51t-37.5 85t-13 128v133q0 118 -55 182.5t-164 69.5v188q97 -2 177 -33t136.5 -90.5t87.5 -148t31 -205.5v-119q0 -77 31.5 -124.5t91.5 -47.5h31v-186h-31
q-60 0 -91.5 -47.5t-31.5 -124.5v-121q0 -117 -31 -205.5t-87.5 -148t-136.5 -90.5t-177 -33v188z" />
<glyph glyph-name="asciitilde" unicode="~"
d="M852 541q-65 0 -121 18.5t-105.5 40.5t-95 40.5t-90.5 18.5q-55 0 -86.5 -33t-36.5 -85h-153q0 64 15 122.5t48 103t85 71t126 26.5q65 0 121 -18.5t105.5 -41t95 -41t90.5 -18.5q56 0 87 33.5t36 85.5h153q0 -64 -15 -122.5t-47.5 -103t-84.5 -71t-127 -26.5z" />
<glyph glyph-name="Adieresis" unicode="&#xc4;" horiz-adv-x="1425"
d="M1118 0l-114 330h-580l-117 -330h-221l518 1434h219l516 -1434h-221zM764 1006q-12 34 -26.5 79t-22.5 82q-10 -37 -23.5 -81.5t-25.5 -79.5l-177 -488h449zM528 1599q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5
t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10zM897 1599q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="Aring" unicode="&#xc5;" horiz-adv-x="1425"
d="M1118 0l-114 330h-580l-117 -330h-221l475 1317q-46 35 -73 87t-27 114q0 51 20 96t54.5 78.5t80 53t97.5 19.5q51 0 97 -19.5t80.5 -53t54.5 -78.5t20 -96q0 -62 -28 -113.5t-73 -85.5l475 -1319h-221zM764 1006q-12 34 -26.5 79t-22.5 82q-10 -37 -23.5 -81.5
t-25.5 -79.5l-177 -488h449zM713 1421q38 0 65 27.5t27 69.5q0 41 -27 68.5t-65 27.5t-65 -27.5t-27 -68.5q0 -42 27 -69.5t65 -27.5z" />
<glyph glyph-name="Ccedilla" unicode="&#xc7;" horiz-adv-x="1331"
d="M709 -489q-75 0 -124.5 21.5t-80.5 55.5l104 76q13 -15 32 -23t48 -8q47 0 75 25t28 66q0 38 -32 63t-79 25q-48 0 -82 -21l-41 51l109 138q-99 8 -177 42t-137 88t-101 124t-68 149t-38 164t-12 170q0 82 13.5 169t43 169.5t76.5 155.5t113 128t153 87t197 32
q101 0 182 -24.5t141.5 -64.5t101.5 -91t63 -104l-195 -91q-26 41 -54.5 72.5t-63 53.5t-77.5 33t-98 11q-72 0 -127.5 -23t-97 -63t-70.5 -93t-46.5 -112.5t-25.5 -122.5t-8 -122q0 -95 21.5 -191t67.5 -173t117 -125t169 -48q53 0 95.5 13.5t78 38t64 58.5t53.5 75
l199 -76q-28 -65 -67.5 -118.5t-92.5 -93.5t-120 -65t-148 -32l-50 -82q60 0 103 -14.5t70 -38.5t40 -56t13 -68q0 -46 -18 -84.5t-52 -66.5t-81.5 -43.5t-106.5 -15.5z" />
<glyph glyph-name="Eacute" unicode="&#xc9;" horiz-adv-x="1231"
d="M184 0v1434h889v-201h-676v-393h437v-201h-437v-438h721v-201h-934zM625 1569h-217l290 319h291z" />
<glyph glyph-name="Ntilde" unicode="&#xd1;" horiz-adv-x="1454"
d="M1069 0l-620 973l-58 106l6 -106v-973h-213v1434h215l605 -957l59 -110l-6 108v959h213v-1434h-201zM909 1591q-54 0 -99.5 15.5t-85.5 33.5t-77 33.5t-76 15.5q-38 0 -65.5 -21.5t-30.5 -68.5h-104q0 61 11.5 110.5t37.5 84.5t66.5 53.5t99.5 18.5q54 0 99.5 -15.5
t85.5 -34t77 -34t76 -15.5q38 0 65.5 22t30.5 68h104q0 -61 -11.5 -110.5t-37.5 -84t-67 -53t-99 -18.5z" />
<glyph glyph-name="Odieresis" unicode="&#xd6;" horiz-adv-x="1516"
d="M758 -25q-115 0 -206 30.5t-160.5 83t-118.5 124t-80 154t-45.5 172t-14.5 178.5q0 88 14.5 177.5t45.5 172t80 154t118.5 124t160.5 83t206 30.5t206 -30.5t160.5 -83t118.5 -124t80 -154t45 -172t14 -177.5q0 -89 -14 -178.5t-45 -172t-80 -154t-118.5 -124t-160.5 -83
t-206 -30.5zM758 180q75 0 134 23.5t103.5 63.5t76 93.5t51.5 113t29 122t9 121.5q0 62 -9 126.5t-29 124t-51.5 111.5t-76 90.5t-103.5 61t-134 22.5t-134 -23.5t-104 -63.5t-76.5 -93.5t-51.5 -113t-29 -122t-9 -120.5q0 -94 21 -189.5t69 -173t125 -126t189 -48.5z
M575 1599q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10zM944 1599q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10
t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="Udieresis" unicode="&#xdc;" horiz-adv-x="1427"
d="M713 -25q-111 0 -209.5 29t-171.5 95.5t-115.5 175t-42.5 268.5v891h213v-891q0 -108 25 -178t68.5 -111t103.5 -57.5t129 -16.5t128.5 16.5t104 57.5t69.5 111t25 178v891h213v-891q0 -158 -41 -266.5t-113.5 -175.5t-171.5 -96.5t-214 -29.5zM528 1599q-27 0 -50.5 10
t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10zM897 1599q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41
t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="aacute" unicode="&#xe1;" horiz-adv-x="1090"
d="M956 0h-204v90q-20 -21 -48 -41.5t-63.5 -37t-79.5 -26.5t-96 -10q-80 0 -148 22t-118 66.5t-78.5 110t-28.5 152.5q0 90 34 155.5t90 108t128.5 62.5t149.5 20q72 0 138.5 -15.5t119.5 -46.5v58q0 59 -13.5 100t-41 66.5t-69.5 37t-100 11.5q-98 0 -169.5 -26
t-129.5 -69l-63 175q32 22 73 41.5t90 34.5t106 23.5t122 8.5q44 0 91 -5t91.5 -19.5t84 -41.5t69 -70.5t46.5 -106.5t17 -150v-678zM504 164q81 0 143.5 33t104.5 79v160q-44 23 -103 37t-121 14q-48 0 -90 -9t-73.5 -28.5t-49.5 -50t-18 -73.5q0 -75 52.5 -118.5
t154.5 -43.5zM516 1180h-217l290 319h291z" />
<glyph glyph-name="agrave" unicode="&#xe0;" horiz-adv-x="1090"
d="M956 0h-204v90q-20 -21 -48 -41.5t-63.5 -37t-79.5 -26.5t-96 -10q-80 0 -148 22t-118 66.5t-78.5 110t-28.5 152.5q0 90 34 155.5t90 108t128.5 62.5t149.5 20q72 0 138.5 -15.5t119.5 -46.5v58q0 59 -13.5 100t-41 66.5t-69.5 37t-100 11.5q-98 0 -169.5 -26
t-129.5 -69l-63 175q32 22 73 41.5t90 34.5t106 23.5t122 8.5q44 0 91 -5t91.5 -19.5t84 -41.5t69 -70.5t46.5 -106.5t17 -150v-678zM504 164q81 0 143.5 33t104.5 79v160q-44 23 -103 37t-121 14q-48 0 -90 -9t-73.5 -28.5t-49.5 -50t-18 -73.5q0 -75 52.5 -118.5
t154.5 -43.5zM598 1180l-365 319h291l291 -319h-217z" />
<glyph glyph-name="acircumflex" unicode="&#xe2;" horiz-adv-x="1090"
d="M956 0h-204v90q-20 -21 -48 -41.5t-63.5 -37t-79.5 -26.5t-96 -10q-80 0 -148 22t-118 66.5t-78.5 110t-28.5 152.5q0 90 34 155.5t90 108t128.5 62.5t149.5 20q72 0 138.5 -15.5t119.5 -46.5v58q0 59 -13.5 100t-41 66.5t-69.5 37t-100 11.5q-98 0 -169.5 -26
t-129.5 -69l-63 175q32 22 73 41.5t90 34.5t106 23.5t122 8.5q44 0 91 -5t91.5 -19.5t84 -41.5t69 -70.5t46.5 -106.5t17 -150v-678zM504 164q81 0 143.5 33t104.5 79v160q-44 23 -103 37t-121 14q-48 0 -90 -9t-73.5 -28.5t-49.5 -50t-18 -73.5q0 -75 52.5 -118.5
t154.5 -43.5zM749 1180l-192 161l-193 -161h-205l291 319h215l289 -319h-205z" />
<glyph glyph-name="adieresis" unicode="&#xe4;" horiz-adv-x="1090"
d="M956 0h-204v90q-20 -21 -48 -41.5t-63.5 -37t-79.5 -26.5t-96 -10q-80 0 -148 22t-118 66.5t-78.5 110t-28.5 152.5q0 90 34 155.5t90 108t128.5 62.5t149.5 20q72 0 138.5 -15.5t119.5 -46.5v58q0 59 -13.5 100t-41 66.5t-69.5 37t-100 11.5q-98 0 -169.5 -26
t-129.5 -69l-63 175q32 22 73 41.5t90 34.5t106 23.5t122 8.5q44 0 91 -5t91.5 -19.5t84 -41.5t69 -70.5t46.5 -106.5t17 -150v-678zM504 164q81 0 143.5 33t104.5 79v160q-44 23 -103 37t-121 14q-48 0 -90 -9t-73.5 -28.5t-49.5 -50t-18 -73.5q0 -75 52.5 -118.5
t154.5 -43.5zM372 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10zM741 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5
t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="atilde" unicode="&#xe3;" horiz-adv-x="1090"
d="M956 0h-204v90q-20 -21 -48 -41.5t-63.5 -37t-79.5 -26.5t-96 -10q-80 0 -148 22t-118 66.5t-78.5 110t-28.5 152.5q0 90 34 155.5t90 108t128.5 62.5t149.5 20q72 0 138.5 -15.5t119.5 -46.5v58q0 59 -13.5 100t-41 66.5t-69.5 37t-100 11.5q-98 0 -169.5 -26
t-129.5 -69l-63 175q32 22 73 41.5t90 34.5t106 23.5t122 8.5q44 0 91 -5t91.5 -19.5t84 -41.5t69 -70.5t46.5 -106.5t17 -150v-678zM504 164q81 0 143.5 33t104.5 79v160q-44 23 -103 37t-121 14q-48 0 -90 -9t-73.5 -28.5t-49.5 -50t-18 -73.5q0 -75 52.5 -118.5
t154.5 -43.5zM718 1202q-54 0 -99.5 15.5t-85.5 33.5t-77 33.5t-76 15.5q-38 0 -65.5 -21.5t-30.5 -68.5h-104q0 61 11.5 110.5t37.5 84.5t66.5 53.5t99.5 18.5q54 0 99.5 -15.5t85.5 -34t77 -34t76 -15.5q38 0 65.5 22t30.5 68h104q0 -61 -11.5 -110.5t-37.5 -84t-67 -53
t-99 -18.5z" />
<glyph glyph-name="aring" unicode="&#xe5;" horiz-adv-x="1090"
d="M557 1315q38 0 65 27.5t27 68.5q0 42 -27 69.5t-65 27.5q-39 0 -66 -27.5t-27 -69.5t27 -69t66 -27zM557 1162q-52 0 -97.5 19.5t-80 53.5t-54.5 79.5t-20 96.5q0 52 20 97t54.5 78.5t80 53t97.5 19.5q51 0 97 -19.5t80.5 -53t54.5 -78.5t20 -97q0 -51 -20 -96.5
t-54.5 -79.5t-80.5 -53.5t-97 -19.5zM956 0h-204v90q-20 -21 -48 -41.5t-63.5 -37t-79.5 -26.5t-96 -10q-80 0 -148 22t-118 66.5t-78.5 110t-28.5 152.5q0 90 34 155.5t90 108t128.5 62.5t149.5 20q72 0 138.5 -15.5t119.5 -46.5v58q0 59 -13.5 100t-41 66.5t-69.5 37
t-100 11.5q-98 0 -169.5 -26t-129.5 -69l-63 175q32 22 73 41.5t90 34.5t106 23.5t122 8.5q44 0 91 -5t91.5 -19.5t84 -41.5t69 -70.5t46.5 -106.5t17 -150v-678zM504 164q81 0 143.5 33t104.5 79v160q-44 23 -103 37t-121 14q-48 0 -90 -9t-73.5 -28.5t-49.5 -50t-18 -73.5
q0 -75 52.5 -118.5t154.5 -43.5z" />
<glyph glyph-name="ccedilla" unicode="&#xe7;" horiz-adv-x="1061"
d="M528 -489q-74 0 -123.5 21.5t-80.5 55.5l104 76q12 -15 31.5 -23t48.5 -8q46 0 74 25t28 66q0 38 -31.5 63t-78.5 25q-49 0 -82 -21l-41 51l110 140q-90 11 -161 53t-121 111t-76.5 164t-26.5 212q0 129 32 231t91.5 172.5t144 108t189.5 37.5q146 0 247.5 -65
t147.5 -205l-202 -70q-23 60 -70 97.5t-115 37.5q-60 0 -106 -24t-77.5 -68.5t-48 -108t-16.5 -143.5t16.5 -143.5t47 -107.5t75 -67.5t101.5 -23.5q72 0 123.5 40t73.5 114l202 -64q-38 -134 -126 -207t-222 -86l-49 -79q60 0 102.5 -14.5t70 -38.5t40 -56t12.5 -68
q0 -46 -18 -84.5t-51.5 -66.5t-81.5 -43.5t-107 -15.5z" />
<glyph glyph-name="eacute" unicode="&#xe9;" horiz-adv-x="1120"
d="M578 -25q-109 0 -197 37.5t-150 108t-95.5 172.5t-33.5 231t34 230.5t96.5 172t150 107.5t195.5 37q93 0 174.5 -29.5t143 -90t97 -152.5t35.5 -217q0 -34 -1.5 -72t-6.5 -66h-705q1 -65 23.5 -116.5t59.5 -88t84 -56t98 -19.5q65 0 120.5 27t96.5 79l139 -143
q-57 -68 -146 -110t-212 -42zM578 883q-50 0 -96 -14.5t-81.5 -46t-58.5 -82.5t-27 -124h500q-2 73 -23 124t-55 82.5t-75.5 46t-83.5 14.5zM539 1180h-217l290 319h291z" />
<glyph glyph-name="egrave" unicode="&#xe8;" horiz-adv-x="1120"
d="M578 -25q-109 0 -197 37.5t-150 108t-95.5 172.5t-33.5 231t34 230.5t96.5 172t150 107.5t195.5 37q93 0 174.5 -29.5t143 -90t97 -152.5t35.5 -217q0 -34 -1.5 -72t-6.5 -66h-705q1 -65 23.5 -116.5t59.5 -88t84 -56t98 -19.5q65 0 120.5 27t96.5 79l139 -143
q-57 -68 -146 -110t-212 -42zM578 883q-50 0 -96 -14.5t-81.5 -46t-58.5 -82.5t-27 -124h500q-2 73 -23 124t-55 82.5t-75.5 46t-83.5 14.5zM621 1180l-365 319h291l291 -319h-217z" />
<glyph glyph-name="ecircumflex" unicode="&#xea;" horiz-adv-x="1120"
d="M578 -25q-109 0 -197 37.5t-150 108t-95.5 172.5t-33.5 231t34 230.5t96.5 172t150 107.5t195.5 37q93 0 174.5 -29.5t143 -90t97 -152.5t35.5 -217q0 -34 -1.5 -72t-6.5 -66h-705q1 -65 23.5 -116.5t59.5 -88t84 -56t98 -19.5q65 0 120.5 27t96.5 79l139 -143
q-57 -68 -146 -110t-212 -42zM578 883q-50 0 -96 -14.5t-81.5 -46t-58.5 -82.5t-27 -124h500q-2 73 -23 124t-55 82.5t-75.5 46t-83.5 14.5zM772 1180l-192 161l-193 -161h-205l291 319h215l289 -319h-205z" />
<glyph glyph-name="edieresis" unicode="&#xeb;" horiz-adv-x="1120"
d="M578 -25q-109 0 -197 37.5t-150 108t-95.5 172.5t-33.5 231t34 230.5t96.5 172t150 107.5t195.5 37q93 0 174.5 -29.5t143 -90t97 -152.5t35.5 -217q0 -34 -1.5 -72t-6.5 -66h-705q1 -65 23.5 -116.5t59.5 -88t84 -56t98 -19.5q65 0 120.5 27t96.5 79l139 -143
q-57 -68 -146 -110t-212 -42zM578 883q-50 0 -96 -14.5t-81.5 -46t-58.5 -82.5t-27 -124h500q-2 73 -23 124t-55 82.5t-75.5 46t-83.5 14.5zM395 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5
t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10zM764 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="iacute" unicode="&#xed;" horiz-adv-x="524"
d="M156 0v1047h213v-1047h-213zM226 1180h-217l290 319h291z" />
<glyph glyph-name="igrave" unicode="&#xec;" horiz-adv-x="524"
d="M156 0v1047h213v-1047h-213zM308 1180l-365 319h291l291 -319h-217z" />
<glyph glyph-name="icircumflex" unicode="&#xee;" horiz-adv-x="524"
d="M156 0v1047h213v-1047h-213zM459 1180l-192 161l-193 -161h-205l291 319h215l289 -319h-205z" />
<glyph glyph-name="idieresis" unicode="&#xef;" horiz-adv-x="524"
d="M156 0v1047h213v-1047h-213zM82 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10zM451 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5
t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="ntilde" unicode="&#xf1;" horiz-adv-x="1157"
d="M801 0v625q0 66 -16 112.5t-44 76t-66 43t-83 13.5q-48 0 -89 -12.5t-71 -40.5t-47.5 -74.5t-17.5 -113.5v-629h-213v1047h213v-101q51 65 117 95t153 30q82 0 151 -23.5t119.5 -76.5t78.5 -138t28 -208v-625h-213zM751 1202q-54 0 -99.5 15.5t-85.5 33.5t-77 33.5
t-76 15.5q-38 0 -65.5 -21.5t-30.5 -68.5h-104q0 61 11.5 110.5t37.5 84.5t66.5 53.5t99.5 18.5q54 0 99.5 -15.5t85.5 -34t77 -34t76 -15.5q38 0 65.5 22t30.5 68h104q0 -61 -11.5 -110.5t-37.5 -84t-67 -53t-99 -18.5z" />
<glyph glyph-name="oacute" unicode="&#xf3;" horiz-adv-x="1161"
d="M580 -25q-110 0 -198.5 37t-150.5 107.5t-95.5 172t-33.5 230.5t33.5 231t95.5 172.5t150.5 108t198.5 37.5q109 0 198 -37.5t151 -108t96 -172.5t34 -231t-34 -230.5t-96 -172t-151 -107.5t-198 -37zM580 176q61 0 110.5 24t84 68.5t53 108.5t18.5 145t-18.5 145.5
t-53 109.5t-84 69t-110.5 24t-110 -24t-83.5 -69t-53 -109.5t-18.5 -145.5t18.5 -145t53 -108.5t83.5 -68.5t110 -24zM539 1180h-217l290 319h291z" />
<glyph glyph-name="ograve" unicode="&#xf2;" horiz-adv-x="1161"
d="M580 -25q-110 0 -198.5 37t-150.5 107.5t-95.5 172t-33.5 230.5t33.5 231t95.5 172.5t150.5 108t198.5 37.5q109 0 198 -37.5t151 -108t96 -172.5t34 -231t-34 -230.5t-96 -172t-151 -107.5t-198 -37zM580 176q61 0 110.5 24t84 68.5t53 108.5t18.5 145t-18.5 145.5
t-53 109.5t-84 69t-110.5 24t-110 -24t-83.5 -69t-53 -109.5t-18.5 -145.5t18.5 -145t53 -108.5t83.5 -68.5t110 -24zM621 1180l-365 319h291l291 -319h-217z" />
<glyph glyph-name="ocircumflex" unicode="&#xf4;" horiz-adv-x="1161"
d="M580 -25q-110 0 -198.5 37t-150.5 107.5t-95.5 172t-33.5 230.5t33.5 231t95.5 172.5t150.5 108t198.5 37.5q109 0 198 -37.5t151 -108t96 -172.5t34 -231t-34 -230.5t-96 -172t-151 -107.5t-198 -37zM580 176q61 0 110.5 24t84 68.5t53 108.5t18.5 145t-18.5 145.5
t-53 109.5t-84 69t-110.5 24t-110 -24t-83.5 -69t-53 -109.5t-18.5 -145.5t18.5 -145t53 -108.5t83.5 -68.5t110 -24zM772 1180l-192 161l-193 -161h-205l291 319h215l289 -319h-205z" />
<glyph glyph-name="odieresis" unicode="&#xf6;" horiz-adv-x="1161"
d="M580 -25q-110 0 -198.5 37t-150.5 107.5t-95.5 172t-33.5 230.5t33.5 231t95.5 172.5t150.5 108t198.5 37.5q109 0 198 -37.5t151 -108t96 -172.5t34 -231t-34 -230.5t-96 -172t-151 -107.5t-198 -37zM580 176q61 0 110.5 24t84 68.5t53 108.5t18.5 145t-18.5 145.5
t-53 109.5t-84 69t-110.5 24t-110 -24t-83.5 -69t-53 -109.5t-18.5 -145.5t18.5 -145t53 -108.5t83.5 -68.5t110 -24zM395 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41
t-41 -27.5t-50.5 -10zM764 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="otilde" unicode="&#xf5;" horiz-adv-x="1161"
d="M580 -25q-110 0 -198.5 37t-150.5 107.5t-95.5 172t-33.5 230.5t33.5 231t95.5 172.5t150.5 108t198.5 37.5q109 0 198 -37.5t151 -108t96 -172.5t34 -231t-34 -230.5t-96 -172t-151 -107.5t-198 -37zM580 176q61 0 110.5 24t84 68.5t53 108.5t18.5 145t-18.5 145.5
t-53 109.5t-84 69t-110.5 24t-110 -24t-83.5 -69t-53 -109.5t-18.5 -145.5t18.5 -145t53 -108.5t83.5 -68.5t110 -24zM741 1202q-54 0 -99.5 15.5t-85.5 33.5t-77 33.5t-76 15.5q-38 0 -65.5 -21.5t-30.5 -68.5h-104q0 61 11.5 110.5t37.5 84.5t66.5 53.5t99.5 18.5
q54 0 99.5 -15.5t85.5 -34t77 -34t76 -15.5q38 0 65.5 22t30.5 68h104q0 -61 -11.5 -110.5t-37.5 -84t-67 -53t-99 -18.5z" />
<glyph glyph-name="uacute" unicode="&#xfa;" horiz-adv-x="1157"
d="M791 0v100q-51 -65 -117.5 -95t-153.5 -30q-82 0 -151 23.5t-119.5 77t-78.5 138.5t-28 208v625h213v-625q0 -66 16 -112.5t44 -76.5t66 -43.5t83 -13.5q48 0 89 12.5t71.5 41t48 74.5t17.5 114v629h213v-1047h-213zM529 1180h-217l290 319h291z" />
<glyph glyph-name="ugrave" unicode="&#xf9;" horiz-adv-x="1157"
d="M791 0v100q-51 -65 -117.5 -95t-153.5 -30q-82 0 -151 23.5t-119.5 77t-78.5 138.5t-28 208v625h213v-625q0 -66 16 -112.5t44 -76.5t66 -43.5t83 -13.5q48 0 89 12.5t71.5 41t48 74.5t17.5 114v629h213v-1047h-213zM611 1180l-365 319h291l291 -319h-217z" />
<glyph glyph-name="ucircumflex" unicode="&#xfb;" horiz-adv-x="1157"
d="M791 0v100q-51 -65 -117.5 -95t-153.5 -30q-82 0 -151 23.5t-119.5 77t-78.5 138.5t-28 208v625h213v-625q0 -66 16 -112.5t44 -76.5t66 -43.5t83 -13.5q48 0 89 12.5t71.5 41t48 74.5t17.5 114v629h213v-1047h-213zM762 1180l-192 161l-193 -161h-205l291 319h215
l289 -319h-205z" />
<glyph glyph-name="udieresis" unicode="&#xfc;" horiz-adv-x="1157"
d="M791 0v100q-51 -65 -117.5 -95t-153.5 -30q-82 0 -151 23.5t-119.5 77t-78.5 138.5t-28 208v625h213v-625q0 -66 16 -112.5t44 -76.5t66 -43.5t83 -13.5q48 0 89 12.5t71.5 41t48 74.5t17.5 114v629h213v-1047h-213zM385 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5
t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10zM754 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41
t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="dagger" unicode="&#x2020;" horiz-adv-x="1147"
d="M659 899l21 -211l-64 -977h-81l-68 977l18 211l-239 -33h-113v205h113l237 -35l-16 166v256h213v-256l-18 -166l239 35h113v-205h-113z" />
<glyph glyph-name="degree" unicode="&#xb0;" horiz-adv-x="819"
d="M410 1124q32 0 59.5 12.5t47.5 34t31 50.5t11 63t-11 63t-31 50t-47.5 33t-59.5 12t-60 -12t-48.5 -33t-32 -50t-11.5 -63t11.5 -63t32 -50.5t48.5 -34t60 -12.5zM410 928q-75 0 -141 27.5t-115 75.5t-77 113t-28 140q0 76 28 141t77 112t115 74t141 27t140.5 -27
t113.5 -74t76 -112t28 -141q0 -75 -28 -140t-76 -113t-113.5 -75.5t-140.5 -27.5z" />
<glyph glyph-name="cent" unicode="&#xa2;" horiz-adv-x="1061"
d="M434 -25v209q-78 20 -139.5 65t-104 112.5t-65.5 157t-23 198.5q0 108 23 197.5t65.5 157t104 112.5t139.5 65v209h205v-198q114 -17 194.5 -81t120.5 -184l-202 -69q-23 60 -70 97.5t-115 37.5q-60 0 -106 -24t-77.5 -68.5t-48 -108t-16.5 -143.5t16.5 -143.5t47 -107.5
t75 -67.5t101.5 -23.5q72 0 123.5 39.5t73.5 113.5l202 -63q-74 -254 -319 -289v-201h-205z" />
<glyph glyph-name="sterling" unicode="&#xa3;" horiz-adv-x="1206"
d="M164 0v213q51 24 84.5 68t53.5 96.5t28 106.5t8 96h-184v188h135q-13 27 -26.5 56t-24 62.5t-17 73t-6.5 87.5q0 78 28.5 152t87 131.5t148 92.5t211.5 35q71 0 130 -9.5t111 -27.5t99.5 -45t95.5 -61l-84 -203q-25 22 -56 47t-72.5 46t-96.5 34.5t-127 13.5
q-68 0 -116 -18t-78.5 -47t-45 -66t-14.5 -75t9 -71.5t22.5 -66.5t29 -67.5t29.5 -73.5h342v-188h-309q0 -104 -36.5 -199t-114.5 -176h737v-205h-981z" />
<glyph glyph-name="section" unicode="&#xa7;" horiz-adv-x="1071"
d="M543 -246q-75 0 -141 14t-122.5 39.5t-101.5 60.5t-76 77l156 133q18 -18 44.5 -38.5t61.5 -38.5t79.5 -30t97.5 -12q43 0 81 7t66 23.5t44 43t16 65.5q0 42 -28.5 73.5t-75 58.5t-105 50.5t-117.5 49.5q-56 24 -109 50t-94 62t-66.5 85t-25.5 120q0 76 37.5 133t99.5 88
q-66 45 -101.5 111.5t-35.5 153.5q0 78 31 138.5t85 102t127.5 63t157.5 21.5q75 0 136 -14t110.5 -38t87.5 -55t66 -65l-162 -129q-15 16 -36.5 33t-51 31t-66.5 23t-84 9q-83 0 -131.5 -31t-48.5 -89q0 -34 24 -61.5t64.5 -51t93.5 -45t111 -43.5q62 -25 121 -52t105 -66
t74 -93.5t28 -134.5q0 -151 -119 -221q62 -51 90.5 -115t28.5 -146q0 -83 -29 -148t-84 -110t-134 -68.5t-179 -23.5zM748 569q0 37 -23.5 65.5t-63 51.5t-91 42.5t-107.5 39.5q-54 -9 -84.5 -36.5t-30.5 -69.5q0 -35 26 -61.5t71 -49t104.5 -43.5t126.5 -45q34 14 53 41
t19 65z" />
<glyph glyph-name="bullet" unicode="&#x2022;" horiz-adv-x="831"
d="M414 436q-62 0 -115.5 22t-92.5 60t-61 89t-22 110q0 58 22 109.5t61 90.5t92.5 61.5t115.5 22.5t116 -22.5t93.5 -61.5t62.5 -90.5t23 -109.5q0 -59 -23 -110t-62.5 -89t-93.5 -60t-116 -22z" />
<glyph glyph-name="paragraph" unicode="&#xb6;" horiz-adv-x="1286"
d="M909 -244v1473h-176v-1542l-213 -97v975q-130 0 -221 39.5t-148.5 102.5t-83.5 140t-26 152q0 81 24.5 159t80 139.5t146 99t222.5 37.5h608v-1581z" />
<glyph glyph-name="germandbls" unicode="&#xdf;" horiz-adv-x="1143"
d="M627 -25q-57 0 -106 9t-89 24l109 176q42 -12 88 -12q37 0 76 15t71 46t52 79t20 114q0 48 -15.5 94t-49.5 81.5t-88 57t-130 21.5h-45v197h45q45 0 83.5 12t66.5 36.5t43.5 61t15.5 84.5q0 88 -53 139.5t-152 51.5q-48 0 -89 -15.5t-71 -49.5t-46.5 -89t-16.5 -133
v-1286l-213 -99v1379q0 133 37.5 226.5t98.5 151.5t139 84.5t159 26.5q94 0 171 -27t132.5 -76t86 -118t30.5 -154q0 -48 -11.5 -93.5t-35 -84t-59.5 -68.5t-86 -49q64 -19 113.5 -53t83.5 -80t51.5 -102.5t17.5 -120.5q0 -108 -33 -193t-91.5 -143.5t-137.5 -89.5t-172 -31
z" />
<glyph glyph-name="registered" unicode="&#xae;" horiz-adv-x="1729"
d="M571 285v864h340q81 0 135.5 -22t87.5 -58t47.5 -82.5t14.5 -95.5q0 -38 -10.5 -75.5t-32.5 -70.5t-56 -59t-81 -41q42 -87 88 -180.5t88 -179.5h-176l-166 346h-127v-346h-152zM911 776q36 0 60.5 9t38.5 25t20 37t6 44q0 20 -5 40t-19 36.5t-38 26.5t-63 10h-188v-228
h188zM864 -25q-158 0 -293 57t-235 156.5t-156.5 235t-56.5 293.5q0 105 25.5 200.5t73 178t114.5 149.5t149.5 114.5t178 73t200.5 25.5t201 -25.5t178 -73t149.5 -114.5t114.5 -149.5t73 -178t26 -200.5t-26 -201t-73 -178t-114.5 -149.5t-149.5 -114.5t-178 -73t-201 -26
zM864 123q127 0 234 45.5t185 125t121.5 188t43.5 235.5t-43.5 235.5t-121.5 188t-185 125t-234 45.5t-234 -45.5t-184.5 -125t-121 -188t-43.5 -235.5t43.5 -235.5t121 -188t184.5 -125t234 -45.5z" />
<glyph glyph-name="copyright" unicode="&#xa9;" horiz-adv-x="1729"
d="M872 270q-101 0 -170 40t-111 103.5t-60.5 143.5t-18.5 160q0 49 8 101.5t26 102t46 93.5t68 77t92.5 52.5t119.5 19.5q62 0 112 -16t87.5 -42t63 -59t39.5 -67l-136 -64q-32 49 -68.5 75t-97.5 26q-57 0 -96 -28t-62.5 -71.5t-33.5 -96.5t-10 -103q0 -53 11.5 -106.5
t36.5 -96.5t63 -69.5t91 -26.5q58 0 96.5 30t69.5 76l138 -49q-20 -45 -48 -83t-65.5 -65t-85 -42t-105.5 -15zM864 -25q-158 0 -293 57t-235 156.5t-156.5 235t-56.5 293.5q0 105 25.5 200.5t73 178t114.5 149.5t149.5 114.5t178 73t200.5 25.5t201 -25.5t178 -73
t149.5 -114.5t114.5 -149.5t73 -178t26 -200.5t-26 -201t-73 -178t-114.5 -149.5t-149.5 -114.5t-178 -73t-201 -26zM864 123q127 0 234 45.5t185 125t121.5 188t43.5 235.5t-43.5 235.5t-121.5 188t-185 125t-234 45.5t-234 -45.5t-184.5 -125t-121 -188t-43.5 -235.5
t43.5 -235.5t121 -188t184.5 -125t234 -45.5z" />
<glyph glyph-name="trademark" unicode="&#x2122;" horiz-adv-x="1640"
d="M424 1286v-717h-154v717h-229v148h610v-148h-227zM1346 569v516l-19 -51l-213 -497l-215 497l-20 58v-523h-154v865h158l215 -502l14 -41l14 41l215 502h156v-865h-151z" />
<glyph glyph-name="acute" unicode="&#xb4;" horiz-adv-x="819"
d="M369 1180h-217l290 319h291z" />
<glyph glyph-name="dieresis" unicode="&#xa8;" horiz-adv-x="819"
d="M225 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10zM594 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10
t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="AE" unicode="&#xc6;" horiz-adv-x="1718"
d="M827 0v330h-442l-186 -330h-230l832 1434h801v-201h-562v-393h322v-201h-322v-438h607v-201h-820zM827 520v598q-8 -18 -18.5 -39t-21.5 -42.5t-22.5 -42t-21.5 -38.5l-247 -436h331z" />
<glyph glyph-name="Oslash" unicode="&#xd8;" horiz-adv-x="1495"
d="M133 -25l146 213q-42 54 -71.5 117t-48 131t-27.5 139t-9 142q0 88 14.5 177.5t45.5 172t80 154t118.5 124t160.5 83t206 30.5q103 0 186 -24.5t149 -67.5l64 92h215l-148 -215q42 -54 71.5 -116.5t49 -130.5t28.5 -138.5t9 -140.5q0 -89 -14.5 -178.5t-45.5 -172
t-79.5 -154t-118 -124t-160.5 -83t-206 -30.5q-104 0 -187 24.5t-149 68.5l-64 -93h-215zM344 717q0 -85 17 -170.5t55 -159.5l547 801q-44 31 -97 48t-118 17q-75 0 -134 -23.5t-104 -63.5t-76.5 -93.5t-51.5 -113t-29 -122t-9 -120.5zM748 180q75 0 134 23.5t103.5 63.5
t76 93.5t51.5 113t29 122t9 121.5q0 83 -17 169t-55 158l-547 -798q44 -31 96.5 -48.5t119.5 -17.5z" />
<glyph glyph-name="plusminus" unicode="&#xb1;"
d="M752 723v-317h-213v317h-375v205h375v317h213v-317h374v-205h-374zM164 0v205h962v-205h-962z" />
<glyph glyph-name="yen" unicode="&#xa5;" horiz-adv-x="1174"
d="M702 674h283v-185h-293v-135h293v-184h-293v-170h-213v170h-301v184h301v135h-301v185h289l-436 760h241l314 -564l313 564h244z" />
<glyph glyph-name="mu" unicode="&#xb5;" horiz-adv-x="1157"
d="M791 0v100q-51 -65 -115 -95t-135 -30q-122 0 -185 84v-368l-213 -101v1457h213v-625q0 -72 15 -119.5t42.5 -75.5t66 -39.5t85.5 -11.5q48 0 89 12.5t71.5 41t48 74.5t17.5 114v629h213v-1047h-213z" />
<glyph glyph-name="ordfeminine" unicode="&#xaa;" horiz-adv-x="895"
d="M602 580v61q-17 -15 -40.5 -30t-52.5 -26.5t-62.5 -18.5t-69.5 -7q-65 0 -121 18.5t-97 54.5t-64 90t-23 126q0 75 29 129t76 89t105.5 52t118.5 17q54 0 106.5 -11.5t94.5 -31.5v34q0 94 -42 132t-130 38q-74 0 -133 -21t-109 -58l-53 151q54 38 134.5 64t183.5 26
q55 0 113.5 -10t106.5 -43.5t78.5 -97.5t30.5 -172v-555h-180zM410 721q28 0 55.5 6.5t52.5 18t46.5 26t37.5 29.5v135q-18 8 -39 15t-44 12.5t-45.5 8.5t-43.5 3q-34 0 -65.5 -7t-55.5 -22.5t-38.5 -39.5t-14.5 -58q0 -59 40.5 -93t113.5 -34z" />
<glyph glyph-name="ordmasculine" unicode="&#xba;" horiz-adv-x="950"
d="M473 559q-90 0 -162.5 30.5t-123 88t-78 141t-27.5 189.5t27.5 189.5t78 141.5t123 88.5t162.5 30.5t163 -30.5t124.5 -88.5t79.5 -141.5t28 -189.5t-28 -189.5t-79.5 -141t-124.5 -88t-163 -30.5zM473 733q100 0 154.5 72.5t54.5 202.5q0 131 -54.5 203.5t-154.5 72.5
q-97 0 -152 -72.5t-55 -203.5q0 -129 55 -202t152 -73z" />
<glyph glyph-name="ae" unicode="&#xe6;" horiz-adv-x="1757"
d="M1214 -25q-118 0 -210.5 43t-155.5 123q-48 -49 -99 -81t-101 -51t-97 -26.5t-86 -7.5q-80 0 -148 22t-118 66.5t-78.5 110t-28.5 152.5q0 90 34 155.5t90 108t128.5 62.5t149.5 20q72 0 138.5 -15.5t119.5 -46.5v58q0 59 -13.5 100t-41 66.5t-69.5 37t-100 11.5
q-98 0 -169.5 -26t-129.5 -69l-63 175q32 22 73 41.5t90 34.5t106 23.5t122 8.5q41 0 85.5 -5t87 -19.5t80.5 -41t67 -69.5q63 66 147.5 100.5t189.5 34.5q93 0 175 -29.5t143.5 -90t97 -152.5t35.5 -217q0 -34 -1.5 -72t-6.5 -66h-703q1 -65 23.5 -116.5t58.5 -88t83 -56
t98 -19.5q65 0 120.5 27t96.5 79l139 -143q-57 -68 -146.5 -110t-212.5 -42zM504 164q80 0 143 33t105 79v160q-44 23 -104 37t-120 14q-48 0 -90 -9t-73.5 -28.5t-49.5 -50t-18 -73.5q0 -75 52.5 -118.5t154.5 -43.5zM1214 883q-50 0 -95.5 -14t-80.5 -45t-57.5 -80
t-26.5 -119h496q-2 70 -23 119t-54 80t-75 45t-84 14z" />
<glyph glyph-name="oslash" unicode="&#xf8;" horiz-adv-x="1161"
d="M102 -25l113 164q-54 71 -83.5 166.5t-29.5 216.5q0 129 33.5 231t95.5 172.5t150.5 108t198.5 37.5q139 0 243 -59l41 59h195l-115 -164q56 -71 85.5 -167.5t29.5 -217.5q0 -129 -34 -230.5t-96 -172t-151 -107.5t-198 -37q-72 0 -132.5 15.5t-111.5 44.5l-41 -60h-193z
M580 176q61 0 110.5 24t84 68.5t53 108.5t18.5 145q0 56 -9 104.5t-28 88.5l-352 -508q52 -31 123 -31zM315 522q0 -111 33 -190l354 508q-26 15 -57 22.5t-65 7.5q-61 0 -110 -24t-83.5 -69t-53 -109.5t-18.5 -145.5z" />
<glyph glyph-name="questiondown" unicode="&#xbf;" horiz-adv-x="1026"
d="M639 659v-41q0 -73 -15 -128t-40 -97.5t-57 -75t-65 -61t-65 -54.5t-57 -56t-40 -66t-15 -84q0 -45 15 -82.5t43.5 -64.5t70.5 -42.5t96 -15.5q125 0 193.5 73t68.5 206h213q0 -112 -35 -201t-98 -151t-150.5 -95t-191.5 -33q-107 0 -188.5 31t-137 86t-84 129t-28.5 160
q0 84 26 142t65.5 102.5t85.5 81.5t85.5 78.5t65.5 93.5t26 127v38h213zM535 770q-33 0 -61.5 12t-49 32.5t-32 47.5t-11.5 58q0 30 11.5 57.5t32 48.5t49 33t61.5 12q32 0 60.5 -12t49.5 -33t33 -48.5t12 -57.5q0 -31 -12 -58t-33 -47.5t-49.5 -32.5t-60.5 -12z" />
<glyph glyph-name="exclamdown" unicode="&#xa1;" horiz-adv-x="565"
d="M176 -410v453l60 608h94l59 -608v-453h-213zM283 770q-33 0 -61 12t-49 32.5t-32.5 47.5t-11.5 58q0 30 11.5 57.5t32.5 48.5t49 33t61 12q32 0 60.5 -12t49.5 -33t33 -48.5t12 -57.5q0 -31 -12 -58t-33 -47.5t-49.5 -32.5t-60.5 -12z" />
<glyph glyph-name="logicalnot" unicode="&#xac;"
d="M913 344v420h-749v205h962v-625h-213z" />
<glyph glyph-name="florin" unicode="&#x192;" horiz-adv-x="748"
d="M-35 -330q81 18 136.5 41.5t90.5 57t50.5 77.5t15.5 103v913h-156v185h156v167q0 72 21 119.5t54.5 75t76.5 38.5t88 11q62 0 112 -13t97 -36v-172q-48 17 -83 25t-67 8q-26 0 -43 -7t-26.5 -20t-13 -30t-3.5 -37v-129h236v-185h-236v-874q0 -46 -4 -91.5t-14.5 -88.5
t-29.5 -81.5t-50 -70.5q-36 -38 -74 -64t-76 -44t-75.5 -29t-71.5 -19z" />
<glyph glyph-name="guillemotleft" unicode="&#xab;" horiz-adv-x="1073"
d="M373 0l-312 524l312 523h231l-311 -523l311 -524h-231zM811 0l-311 524l311 523h231l-311 -523l311 -524h-231z" />
<glyph glyph-name="guillemotright" unicode="&#xbb;" horiz-adv-x="1073"
d="M469 0l311 524l-311 523h231l312 -523l-312 -524h-231zM31 0l311 524l-311 523h231l311 -523l-311 -524h-231z" />
<glyph glyph-name="ellipsis" unicode="&#x2026;" horiz-adv-x="1911"
d="M317 -25q-28 0 -52.5 10t-42.5 27.5t-28 41t-10 50.5t10 51t28 42t42.5 28.5t52.5 10.5t53 -10.5t43.5 -28.5t29 -42t10.5 -51t-10.5 -50.5t-29 -41t-43.5 -27.5t-53 -10zM954 -25q-28 0 -52.5 10t-42.5 27.5t-28 41t-10 50.5t10 51t28 42t42.5 28.5t52.5 10.5t53 -10.5
t43.5 -28.5t29 -42t10.5 -51t-10.5 -50.5t-29 -41t-43.5 -27.5t-53 -10zM1591 -25q-28 0 -52.5 10t-42.5 27.5t-28 41t-10 50.5t10 51t28 42t42.5 28.5t52.5 10.5t53 -10.5t43 -28.5t28.5 -42t10.5 -51t-10.5 -50.5t-28.5 -41t-43 -27.5t-53 -10z" />
<glyph glyph-name="Agrave" unicode="&#xc0;" horiz-adv-x="1425"
d="M1118 0l-114 330h-580l-117 -330h-221l518 1434h219l516 -1434h-221zM764 1006q-12 34 -26.5 79t-22.5 82q-10 -37 -23.5 -81.5t-25.5 -79.5l-177 -488h449zM754 1569l-365 319h291l291 -319h-217z" />
<glyph glyph-name="Atilde" unicode="&#xc3;" horiz-adv-x="1425"
d="M1118 0l-114 330h-580l-117 -330h-221l518 1434h219l516 -1434h-221zM764 1006q-12 34 -26.5 79t-22.5 82q-10 -37 -23.5 -81.5t-25.5 -79.5l-177 -488h449zM874 1591q-54 0 -99.5 15.5t-85.5 33.5t-77 33.5t-76 15.5q-38 0 -65.5 -21.5t-30.5 -68.5h-104
q0 61 11.5 110.5t37.5 84.5t66.5 53.5t99.5 18.5q54 0 99.5 -15.5t85.5 -34t77 -34t76 -15.5q38 0 65.5 22t30.5 68h104q0 -61 -11.5 -110.5t-37.5 -84t-67 -53t-99 -18.5z" />
<glyph glyph-name="Otilde" unicode="&#xd5;" horiz-adv-x="1516"
d="M758 -25q-115 0 -206 30.5t-160.5 83t-118.5 124t-80 154t-45.5 172t-14.5 178.5q0 88 14.5 177.5t45.5 172t80 154t118.5 124t160.5 83t206 30.5t206 -30.5t160.5 -83t118.5 -124t80 -154t45 -172t14 -177.5q0 -89 -14 -178.5t-45 -172t-80 -154t-118.5 -124t-160.5 -83
t-206 -30.5zM758 180q75 0 134 23.5t103.5 63.5t76 93.5t51.5 113t29 122t9 121.5q0 62 -9 126.5t-29 124t-51.5 111.5t-76 90.5t-103.5 61t-134 22.5t-134 -23.5t-104 -63.5t-76.5 -93.5t-51.5 -113t-29 -122t-9 -120.5q0 -94 21 -189.5t69 -173t125 -126t189 -48.5z
M921 1591q-54 0 -99.5 15.5t-85.5 33.5t-77 33.5t-76 15.5q-38 0 -65.5 -21.5t-30.5 -68.5h-104q0 61 11.5 110.5t37.5 84.5t66.5 53.5t99.5 18.5q54 0 99.5 -15.5t85.5 -34t77 -34t76 -15.5q38 0 65.5 22t30.5 68h104q0 -61 -11.5 -110.5t-37.5 -84t-67 -53t-99 -18.5z" />
<glyph glyph-name="OE" unicode="&#x152;" horiz-adv-x="1831"
d="M936 0q-42 -12 -89 -18.5t-99 -6.5q-115 0 -206 30.5t-160.5 83t-118.5 124t-80 154t-45.5 172t-14.5 178.5q0 82 13 169t43 169.5t78 155.5t117.5 128t162 87t211.5 32q102 0 188 -24h778v-201h-573v-393h334v-201h-334v-438h618v-201h-823zM748 180q54 0 98.5 12
t81.5 33v983q-77 47 -180 47q-75 0 -134.5 -23.5t-104.5 -64t-76.5 -94t-51 -113.5t-28.5 -122.5t-9 -120.5q0 -95 21 -191t69 -173t125 -125t189 -48z" />
<glyph glyph-name="oe" unicode="&#x153;" horiz-adv-x="1860"
d="M1317 -25q-119 0 -211.5 43.5t-155.5 126.5q-63 -83 -156.5 -126.5t-213.5 -43.5q-110 0 -198.5 37t-150.5 107.5t-95.5 172t-33.5 230.5t33.5 231t95.5 172.5t150.5 108t198.5 37.5q120 0 213.5 -44t156.5 -128q62 84 155 128t212 44q93 0 175 -29.5t143 -90
t96.5 -152.5t35.5 -217q0 -34 -1.5 -72t-6.5 -66h-704q1 -65 23.5 -116.5t59 -88t83.5 -56t98 -19.5q65 0 121 27t96 79l139 -143q-57 -68 -146 -110t-212 -42zM1317 883q-50 0 -95.5 -14.5t-81.5 -46t-58.5 -82.5t-26.5 -124h499q-2 73 -23 124t-54.5 82.5t-75.5 46
t-84 14.5zM580 176q61 0 110.5 24t84 68.5t53 108.5t18.5 145t-18.5 145.5t-53 109.5t-84 69t-110.5 24t-110 -24t-83.5 -69t-53 -109.5t-18.5 -145.5t18.5 -145t53 -108.5t83.5 -68.5t110 -24z" />
<glyph glyph-name="endash" unicode="&#x2013;" horiz-adv-x="1014"
d="M102 496v184h809v-184h-809z" />
<glyph glyph-name="emdash" unicode="&#x2014;" horiz-adv-x="1178"
d="M-10 496v184h1198v-184h-1198z" />
<glyph glyph-name="quotedblleft" unicode="&#x201c;" horiz-adv-x="913"
d="M233 895q-32 0 -61.5 11.5t-51.5 34.5t-35 58t-13 82q0 59 17.5 114.5t47.5 104.5t70.5 89t85.5 69l80 -51q-14 -12 -33.5 -34.5t-38.5 -51t-34 -61t-19 -66.5q27 -2 51.5 -13t43.5 -30t30.5 -44t11.5 -56q0 -36 -12.5 -64.5t-33.5 -49t-48.5 -31.5t-57.5 -11zM690 895
q-32 0 -61.5 11.5t-52 34.5t-35.5 58t-13 82q0 59 17.5 114.5t48 104.5t71 89t85.5 69l79 -51q-14 -12 -33 -34.5t-38 -51t-34 -61t-19 -66.5q27 -2 51.5 -13t43.5 -30t30.5 -44t11.5 -56q0 -36 -12.5 -64.5t-33.5 -49t-48.5 -31.5t-57.5 -11z" />
<glyph glyph-name="quotedblright" unicode="&#x201d;" horiz-adv-x="913"
d="M84 946q14 12 33.5 34.5t38.5 51t33.5 61t19.5 66.5q-27 2 -52 13.5t-43.5 30t-30 44t-11.5 56.5q0 35 12.5 63.5t33 49t48 31.5t57.5 11q32 0 61.5 -11.5t52 -34.5t35.5 -58t13 -82q0 -59 -17.5 -115t-47.5 -104.5t-70.5 -89t-85.5 -68.5zM541 946q14 12 33.5 34.5
t38 51t33.5 61t20 66.5q-27 2 -52 13.5t-44 30t-30.5 44t-11.5 56.5q0 35 12.5 63.5t33.5 49t48.5 31.5t57.5 11q32 0 61.5 -11.5t52 -34.5t35.5 -58t13 -82q0 -59 -17.5 -115t-48 -104.5t-70.5 -89t-85 -68.5z" />
<glyph glyph-name="quoteleft" unicode="&#x2018;" horiz-adv-x="457"
d="M233 895q-32 0 -61.5 11.5t-51.5 34.5t-35 58t-13 82q0 59 17.5 114.5t47.5 104.5t70.5 89t85.5 69l80 -51q-14 -12 -33.5 -34.5t-38.5 -51t-34 -61t-19 -66.5q27 -2 51.5 -13t43.5 -30t30.5 -44t11.5 -56q0 -36 -12.5 -64.5t-33.5 -49t-48.5 -31.5t-57.5 -11z" />
<glyph glyph-name="quoteright" unicode="&#x2019;" horiz-adv-x="457"
d="M84 946q14 12 33.5 34.5t38.5 51t33.5 61t19.5 66.5q-27 2 -52 13.5t-43.5 30t-30 44t-11.5 56.5q0 35 12.5 63.5t33 49t48 31.5t57.5 11q32 0 61.5 -11.5t52 -34.5t35.5 -58t13 -82q0 -59 -17.5 -115t-47.5 -104.5t-70.5 -89t-85.5 -68.5z" />
<glyph glyph-name="divide" unicode="&#xf7;"
d="M164 600v205h962v-205h-962zM643 965q-29 0 -53 10t-42 27.5t-28 41t-10 50.5t10 50.5t28 41.5t42 28.5t53 10.5q28 0 53 -10.5t43 -28.5t28.5 -41.5t10.5 -50.5t-10.5 -50.5t-28.5 -41t-43 -27.5t-53 -10zM643 180q-29 0 -53 10t-42 27.5t-28 41t-10 50.5t10 51t28 41.5
t42 28t53 10.5q28 0 53 -10.5t43 -28t28.5 -41.5t10.5 -51t-10.5 -50.5t-28.5 -41t-43 -27.5t-53 -10z" />
<glyph glyph-name="ydieresis" unicode="&#xff;" horiz-adv-x="1102"
d="M498 -397h-217l161 415l-391 1029h211l258 -685q11 -29 17 -48t12 -44q6 25 12 44t17 48l260 685h213zM364 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5
t-50.5 -10zM733 1210q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="Ydieresis" unicode="&#x178;" horiz-adv-x="1364"
d="M575 0v561l-503 873h243l367 -656l367 656h243l-504 -871v-563h-213zM497 1599q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10zM866 1599q-27 0 -50.5 10
t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="Euro" unicode="&#x20ac;"
d="M496 444q15 -57 38.5 -105t58.5 -83.5t81 -55.5t106 -20q79 0 141.5 40t108.5 108l178 -111q-32 -54 -75 -99t-96.5 -76.5t-117.5 -49t-139 -17.5q-120 0 -208 37.5t-149 101t-98.5 149t-56.5 181.5h-188l76 181h90q-2 23 -2 46v46v30.5t2 32.5h-164l76 181h110
q20 97 60 186.5t104 158.5t155 110.5t214 41.5q96 0 187.5 -27t187.5 -96l-84 -202q-26 22 -55.5 43.5t-65.5 38.5t-78 27.5t-92 10.5q-68 0 -119 -23.5t-88.5 -63t-62.5 -92.5t-39 -113h528l-76 -181h-477q-2 -17 -2 -33v-30v-46t2 -46h418l-76 -181h-313z" />
<glyph glyph-name="guilsinglleft" unicode="&#x2039;" horiz-adv-x="635"
d="M373 0l-312 524l312 523h231l-311 -523l311 -524h-231z" />
<glyph glyph-name="guilsinglright" unicode="&#x203a;" horiz-adv-x="635"
d="M31 0l311 524l-311 523h231l311 -523l-311 -524h-231z" />
<glyph glyph-name="daggerdbl" unicode="&#x2021;" horiz-adv-x="1147"
d="M901 98l-239 35l18 -166v-256h-213v256l16 166l-237 -35h-113v205h113l239 -33l-18 211v207l18 211l-239 -33h-113v205h113l237 -35l-16 166v256h213v-256l-18 -166l239 35h113v-205h-113l-242 33l21 -211v-207l-21 -211l242 33h113v-205h-113z" />
<glyph glyph-name="periodcentered" unicode="&#xb7;" horiz-adv-x="457"
d="M227 565q-33 0 -61 12t-48.5 32.5t-32 47.5t-11.5 58t11.5 58.5t32 48t48.5 32.5t61 12q32 0 60.5 -12t49.5 -32.5t33.5 -48t12.5 -58.5t-12.5 -58t-33.5 -47.5t-49.5 -32.5t-60.5 -12z" />
<glyph glyph-name="quotesinglbase" unicode="&#x201a;" horiz-adv-x="457"
d="M84 -238q14 12 33.5 34.5t38.5 51t33.5 61t19.5 66.5q-27 3 -52 14t-43.5 30t-30 44t-11.5 56q0 35 12.5 63.5t33 49t48 31.5t57.5 11q32 0 61.5 -11.5t52 -34.5t35.5 -58t13 -82q0 -59 -17.5 -115t-47.5 -104.5t-70.5 -89t-85.5 -68.5z" />
<glyph glyph-name="quotedblbase" unicode="&#x201e;" horiz-adv-x="913"
d="M84 -238q14 12 33.5 34.5t38.5 51t33.5 61t19.5 66.5q-27 3 -52 14t-43.5 30t-30 44t-11.5 56q0 35 12.5 63.5t33 49t48 31.5t57.5 11q32 0 61.5 -11.5t52 -34.5t35.5 -58t13 -82q0 -59 -17.5 -115t-47.5 -104.5t-70.5 -89t-85.5 -68.5zM541 -238q14 12 33.5 34.5t38 51
t33.5 61t20 66.5q-27 3 -52 14t-44 30t-30.5 44t-11.5 56q0 35 12.5 63.5t33.5 49t48.5 31.5t57.5 11q32 0 61.5 -11.5t52 -34.5t35.5 -58t13 -82q0 -59 -17.5 -115t-48 -104.5t-70.5 -89t-85 -68.5z" />
<glyph glyph-name="perthousand" unicode="&#x2030;" horiz-adv-x="2542"
d="M428 729q-92 0 -156 33t-104 85t-58 117t-18 130q0 60 17.5 124t57.5 117.5t104 88t157 34.5q92 0 156 -32.5t104 -85t58 -117.5t18 -129q0 -59 -17 -123.5t-56.5 -118t-104 -88.5t-158.5 -35zM428 893q42 0 73 16t51.5 43.5t30 64t9.5 77.5q0 43 -10 80t-30.5 63.5
t-51 41.5t-72.5 15t-73 -16t-51.5 -43t-30 -63.5t-9.5 -77.5q0 -44 10 -81t30.5 -63.5t51 -41.5t72.5 -15zM479 -25h-194l979 1483h194zM1315 -25q-92 0 -156 33t-104 85t-58 117t-18 130q0 60 17.5 124.5t57.5 118t104 88t157 34.5q92 0 156 -33t104 -85t58 -117.5
t18 -129.5q0 -59 -17 -123.5t-56.5 -118t-104 -88.5t-158.5 -35zM1315 139q42 0 73 16t51 43.5t30 64t10 77.5q0 44 -10 81t-30.5 63.5t-51.5 41.5t-72 15q-42 0 -73 -16t-51.5 -43t-30 -63.5t-9.5 -78.5q0 -44 10 -81t30.5 -63.5t51 -41.5t72.5 -15zM2114 -25
q-92 0 -156 33t-104 85t-58 117t-18 130q0 60 17.5 124.5t57.5 118t104 88t157 34.5q92 0 156 -33t103.5 -85t57.5 -117.5t18 -129.5q0 -40 -7.5 -82t-23.5 -82.5t-42 -77t-63.5 -64t-86.5 -43.5t-112 -16zM2114 139q42 0 72.5 16t51 43.5t30 64t9.5 77.5q0 44 -10 81
t-30.5 63.5t-51 41.5t-71.5 15q-42 0 -73 -16t-51.5 -43t-30 -63.5t-9.5 -78.5q0 -44 10 -81t30.5 -63.5t51 -41.5t72.5 -15z" />
<glyph glyph-name="Acircumflex" unicode="&#xc2;" horiz-adv-x="1425"
d="M1118 0l-114 330h-580l-117 -330h-221l518 1434h219l516 -1434h-221zM764 1006q-12 34 -26.5 79t-22.5 82q-10 -37 -23.5 -81.5t-25.5 -79.5l-177 -488h449zM905 1569l-192 161l-193 -161h-205l291 319h215l289 -319h-205z" />
<glyph glyph-name="Ecircumflex" unicode="&#xca;" horiz-adv-x="1231"
d="M184 0v1434h889v-201h-676v-393h437v-201h-437v-438h721v-201h-934zM817 1569l-192 161l-193 -161h-205l291 319h215l289 -319h-205z" />
<glyph glyph-name="Aacute" unicode="&#xc1;" horiz-adv-x="1425"
d="M1118 0l-114 330h-580l-117 -330h-221l518 1434h219l516 -1434h-221zM764 1006q-12 34 -26.5 79t-22.5 82q-10 -37 -23.5 -81.5t-25.5 -79.5l-177 -488h449zM672 1569h-217l290 319h291z" />
<glyph glyph-name="Edieresis" unicode="&#xcb;" horiz-adv-x="1231"
d="M184 0v1434h889v-201h-676v-393h437v-201h-437v-438h721v-201h-934zM440 1599q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10zM809 1599q-27 0 -50.5 10
t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="Egrave" unicode="&#xc8;" horiz-adv-x="1231"
d="M184 0v1434h889v-201h-676v-393h437v-201h-437v-438h721v-201h-934zM625 1569l-365 319h291l291 -319h-217z" />
<glyph glyph-name="Iacute" unicode="&#xcd;" horiz-adv-x="602"
d="M195 0v1434h213v-1434h-213zM264 1569h-217l290 319h291z" />
<glyph glyph-name="Icircumflex" unicode="&#xce;" horiz-adv-x="602"
d="M195 0v1434h213v-1434h-213zM497 1569l-192 161l-193 -161h-205l291 319h215l289 -319h-205z" />
<glyph glyph-name="Idieresis" unicode="&#xcf;" horiz-adv-x="602"
d="M195 0v1434h213v-1434h-213zM120 1599q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10zM489 1599q-27 0 -50.5 10t-41 27.5t-27.5 41t-10 50.5t10 50.5
t27.5 41t41 27.5t50.5 10t50.5 -10t41 -27.5t27.5 -41t10 -50.5t-10 -50.5t-27.5 -41t-41 -27.5t-50.5 -10z" />
<glyph glyph-name="Igrave" unicode="&#xcc;" horiz-adv-x="602"
d="M195 0v1434h213v-1434h-213zM346 1569l-365 319h291l291 -319h-217z" />
<glyph glyph-name="Oacute" unicode="&#xd3;" horiz-adv-x="1516"
d="M758 -25q-115 0 -206 30.5t-160.5 83t-118.5 124t-80 154t-45.5 172t-14.5 178.5q0 88 14.5 177.5t45.5 172t80 154t118.5 124t160.5 83t206 30.5t206 -30.5t160.5 -83t118.5 -124t80 -154t45 -172t14 -177.5q0 -89 -14 -178.5t-45 -172t-80 -154t-118.5 -124t-160.5 -83
t-206 -30.5zM758 180q75 0 134 23.5t103.5 63.5t76 93.5t51.5 113t29 122t9 121.5q0 62 -9 126.5t-29 124t-51.5 111.5t-76 90.5t-103.5 61t-134 22.5t-134 -23.5t-104 -63.5t-76.5 -93.5t-51.5 -113t-29 -122t-9 -120.5q0 -94 21 -189.5t69 -173t125 -126t189 -48.5z
M760 1569h-217l290 319h291z" />
<glyph glyph-name="Ocircumflex" unicode="&#xd4;" horiz-adv-x="1516"
d="M758 -25q-115 0 -206 30.5t-160.5 83t-118.5 124t-80 154t-45.5 172t-14.5 178.5q0 88 14.5 177.5t45.5 172t80 154t118.5 124t160.5 83t206 30.5t206 -30.5t160.5 -83t118.5 -124t80 -154t45 -172t14 -177.5q0 -89 -14 -178.5t-45 -172t-80 -154t-118.5 -124t-160.5 -83
t-206 -30.5zM758 180q75 0 134 23.5t103.5 63.5t76 93.5t51.5 113t29 122t9 121.5q0 62 -9 126.5t-29 124t-51.5 111.5t-76 90.5t-103.5 61t-134 22.5t-134 -23.5t-104 -63.5t-76.5 -93.5t-51.5 -113t-29 -122t-9 -120.5q0 -94 21 -189.5t69 -173t125 -126t189 -48.5z
M952 1569l-192 161l-193 -161h-205l291 319h215l289 -319h-205z" />
<glyph glyph-name="Ograve" unicode="&#xd2;" horiz-adv-x="1516"
d="M758 -25q-115 0 -206 30.5t-160.5 83t-118.5 124t-80 154t-45.5 172t-14.5 178.5q0 88 14.5 177.5t45.5 172t80 154t118.5 124t160.5 83t206 30.5t206 -30.5t160.5 -83t118.5 -124t80 -154t45 -172t14 -177.5q0 -89 -14 -178.5t-45 -172t-80 -154t-118.5 -124t-160.5 -83
t-206 -30.5zM758 180q75 0 134 23.5t103.5 63.5t76 93.5t51.5 113t29 122t9 121.5q0 62 -9 126.5t-29 124t-51.5 111.5t-76 90.5t-103.5 61t-134 22.5t-134 -23.5t-104 -63.5t-76.5 -93.5t-51.5 -113t-29 -122t-9 -120.5q0 -94 21 -189.5t69 -173t125 -126t189 -48.5z
M760 1569l-365 319h291l291 -319h-217z" />
<glyph glyph-name="Uacute" unicode="&#xda;" horiz-adv-x="1427"
d="M713 -25q-111 0 -209.5 29t-171.5 95.5t-115.5 175t-42.5 268.5v891h213v-891q0 -108 25 -178t68.5 -111t103.5 -57.5t129 -16.5t128.5 16.5t104 57.5t69.5 111t25 178v891h213v-891q0 -158 -41 -266.5t-113.5 -175.5t-171.5 -96.5t-214 -29.5zM713 1569h-217l290 319
h291z" />
<glyph glyph-name="Ucircumflex" unicode="&#xdb;" horiz-adv-x="1427"
d="M713 -25q-111 0 -209.5 29t-171.5 95.5t-115.5 175t-42.5 268.5v891h213v-891q0 -108 25 -178t68.5 -111t103.5 -57.5t129 -16.5t128.5 16.5t104 57.5t69.5 111t25 178v891h213v-891q0 -158 -41 -266.5t-113.5 -175.5t-171.5 -96.5t-214 -29.5zM905 1569l-192 161
l-193 -161h-205l291 319h215l289 -319h-205z" />
<glyph glyph-name="Ugrave" unicode="&#xd9;" horiz-adv-x="1427"
d="M713 -25q-111 0 -209.5 29t-171.5 95.5t-115.5 175t-42.5 268.5v891h213v-891q0 -108 25 -178t68.5 -111t103.5 -57.5t129 -16.5t128.5 16.5t104 57.5t69.5 111t25 178v891h213v-891q0 -158 -41 -266.5t-113.5 -175.5t-171.5 -96.5t-214 -29.5zM754 1569l-365 319h291
l291 -319h-217z" />
<glyph glyph-name="circumflex" unicode="&#x2c6;" horiz-adv-x="819"
d="M602 1180l-192 161l-193 -161h-205l291 319h215l289 -319h-205z" />
<glyph glyph-name="tilde" unicode="&#x2dc;" horiz-adv-x="819"
d="M571 1202q-54 0 -99.5 15.5t-85.5 33.5t-77 33.5t-76 15.5q-38 0 -65.5 -21.5t-30.5 -68.5h-104q0 61 11.5 110.5t37.5 84.5t66.5 53.5t99.5 18.5q54 0 99.5 -15.5t85.5 -34t77 -34t76 -15.5q38 0 65.5 22t30.5 68h104q0 -61 -11.5 -110.5t-37.5 -84t-67 -53t-99 -18.5z
" />
<glyph glyph-name="macron" unicode="&#xaf;" horiz-adv-x="819"
d="M72 1223v176h676v-176h-676z" />
<glyph glyph-name="cedilla" unicode="&#xb8;" horiz-adv-x="819"
d="M399 -489q-74 0 -123.5 21.5t-80.5 55.5l104 76q12 -15 31.5 -23t48.5 -8q46 0 74 25t28 66q0 38 -31.5 63t-78.5 25q-49 0 -82 -21l-41 51l143 178h117l-76 -122q60 0 102.5 -14.5t70 -38.5t40 -56t12.5 -68q0 -46 -18 -84.5t-51.5 -66.5t-81.5 -43.5t-107 -15.5z" />
<glyph glyph-name="currency" unicode="&#xa4;"
d="M645 176q-161 0 -274 74l-138 -139l-159 159l145 146q-31 55 -46 122t-15 144t16 144t47 124l-147 148l153 153l140 -139q57 37 127 57.5t151 20.5q79 0 148.5 -19.5t126.5 -56.5l137 137l160 -159l-144 -144q29 -57 45.5 -124t16.5 -142q0 -78 -17 -146.5t-49 -125.5
l148 -146l-154 -153l-141 141q-57 -37 -126.5 -56.5t-150.5 -19.5zM645 381q61 0 111.5 22.5t86.5 62.5t55.5 95.5t19.5 120.5t-19.5 120.5t-55.5 96t-86.5 63.5t-111.5 23t-110.5 -23t-85 -63.5t-55 -96t-19.5 -120.5t19.5 -120.5t55 -95.5t85 -62.5t110.5 -22.5z" />
<glyph glyph-name="uni00AD" unicode="&#xad;" horiz-adv-x="809"
d="M154 506v205h501v-205h-501z" />
<glyph glyph-name="ebreve" unicode="&#x115;" horiz-adv-x="1120"
d="M580 1180q-99 0 -170.5 27.5t-118 74t-68.5 108t-22 130.5h180q0 -36 13.5 -66.5t39 -53t62.5 -35.5t84 -13t84 13t63 35.5t39.5 53t13.5 66.5h181q0 -69 -22.5 -131t-69.5 -108.5t-119 -73.5t-170 -27zM578 -25q-109 0 -197 37.5t-150 108t-95.5 172.5t-33.5 231
t34 230.5t96.5 172t150 107.5t195.5 37q93 0 174.5 -29.5t143 -90t97 -152.5t35.5 -217q0 -34 -1.5 -72t-6.5 -66h-705q1 -65 23.5 -116.5t59.5 -88t84 -56t98 -19.5q65 0 120.5 27t96.5 79l139 -143q-57 -68 -146 -110t-212 -42zM578 883q-50 0 -96 -14.5t-81.5 -46
t-58.5 -82.5t-27 -124h500q-2 73 -23 124t-55 82.5t-75.5 46t-83.5 14.5z" />
<glyph glyph-name="kcommaaccent" unicode="&#x137;" horiz-adv-x="1126"
d="M465 -496q12 11 26.5 26t28.5 33.5t26.5 40t21.5 44.5q-28 0 -52 9.5t-42 26t-28.5 39.5t-10.5 50q0 31 10.5 56t28.5 42.5t42 27t50 9.5q28 0 53 -10t43.5 -28.5t29.5 -46t11 -63.5q0 -83 -43.5 -159.5t-124.5 -141.5zM154 0v1378l213 101v-756l309 324h262l-287 -291
l393 -756h-233l-309 602l-135 -135v-467h-213z" />
<glyph glyph-name="kgreenlandic" unicode="&#x138;" horiz-adv-x="1116"
d="M799 0l-260 485l-172 -209v-276h-213v1047h213v-486l387 486h241l-317 -392l356 -655h-235z" />
<glyph glyph-name="uni0163" unicode="&#x163;" horiz-adv-x="776"
d="M399 -489q-74 0 -123.5 21.5t-80.5 55.5l104 76q12 -15 31.5 -23t48.5 -8q46 0 74 25t28 66q0 38 -31.5 63t-78.5 25q-49 0 -82 -21l-41 51l117 148q-76 23 -109 87.5t-33 158.5v626h-162v185h162v329l213 103v-432h248v-185h-248v-571q0 -26 4.5 -48t16 -38t31.5 -24.5
t51 -8.5q76 0 155 49l-26 -198q-41 -19 -87 -31.5t-102 -16.5l-47 -77q60 0 102.5 -14.5t70 -38.5t40 -56t12.5 -68q0 -46 -18 -84.5t-51.5 -66.5t-81.5 -43.5t-107 -15.5z" />
<glyph glyph-name="uni01CD" unicode="&#x1cd;" horiz-adv-x="1425"
d="M819 1569h-215l-289 319h205l193 -162l192 162h205zM1118 0l-114 330h-580l-117 -330h-221l518 1434h219l516 -1434h-221zM764 1006q-12 34 -26.5 79t-22.5 82q-10 -37 -23.5 -81.5t-25.5 -79.5l-177 -488h449z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,488 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<metadata>
Created by FontForge 20170924 at Wed Mar 8 10:48:16 2023
By www
Copyright (c) 2019 by Siva Sai Chaitanya. All rights reserved.
</metadata>
<defs>
<font id="PubgSans-Regular" horiz-adv-x="416" >
<font-face
font-family="Pubg Sans"
font-weight="400"
font-stretch="normal"
units-per-em="1000"
panose-1="0 0 0 0 0 0 0 0 0 0"
ascent="809"
descent="-191"
cap-height="800"
bbox="-391 -238 912 953"
underline-thickness="50"
underline-position="-100"
unicode-range="U+0020-2122"
/>
<missing-glyph />
<glyph glyph-name="space" unicode=" " horiz-adv-x="167"
/>
<glyph glyph-name="exclam" unicode="!" horiz-adv-x="228"
d="M194 800l-25 -550h-110l-25 550h160zM36 155h156v-155h-156v155z" />
<glyph glyph-name="quotedbl" unicode="&#x22;" horiz-adv-x="347"
d="M153 800v-303h-120v303h120zM314 800v-303h-120v303h120z" />
<glyph glyph-name="numbersign" unicode="#" horiz-adv-x="481"
d="M451 534h-54l-17 -268h49v-130h-57l-9 -136h-120l9 136h-57l-9 -136h-120l9 136h-45v130h53l17 268h-48v130h56l9 136h120l-9 -136h57l9 136h120l-9 -136h46v-130zM260 266l17 268h-57l-17 -268h57z" />
<glyph glyph-name="dollar" unicode="$"
d="M313 800l73 -73v-166h-140v109h-77v-197h144l73 -73v-327l-73 -73h-35v-94h-140v94h-35l-73 73v166h139v-109h77v212h-143l-73 74v311l73 73h35v98h140v-98h35z" />
<glyph glyph-name="percent" unicode="%" horiz-adv-x="663"
d="M225 800l52 -52v-296l-52 -52h-143l-52 52v296l52 52h143zM536 800l-297 -800h-111l297 800h111zM129 493h49v214h-49v-214zM581 400l52 -52v-296l-52 -52h-143l-52 52v296l52 52h143zM485 93h49v214h-49v-214z" />
<glyph glyph-name="ampersand" unicode="&#x26;" horiz-adv-x="510"
d="M510 0h-155l-38 76l-56 -76h-165l-74 73v349l42 41v264l73 73h175l73 -73v-264l-70 -70l22 -44l125 170v-246l-52 -71zM204 670v-175h42v175h-42zM176 130l69 93l-70 142h-13v-235h14z" />
<glyph glyph-name="quotesingle" unicode="'" horiz-adv-x="193"
d="M160 800v-303h-127v303h127z" />
<glyph glyph-name="parenleft" unicode="(" horiz-adv-x="266"
d="M236 720h-67v-640h67v-130h-133l-73 73v754l73 73h133v-130z" />
<glyph glyph-name="parenright" unicode=")" horiz-adv-x="266"
d="M30 80h66v640h-66v130h133l73 -73v-754l-73 -73h-133v130z" />
<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="327"
d="M312 644l-73 -21l46 -60l-79 -57l-43 63l-43 -63l-79 57l47 60l-73 22l30 92l72 -26l-2 76h97l-2 -76l72 26z" />
<glyph glyph-name="plus" unicode="+" horiz-adv-x="308"
d="M297 467v-120h-82v-87h-122v87h-82v120h82v87h122v-87h82z" />
<glyph glyph-name="comma" unicode="," horiz-adv-x="223"
d="M32 155h161v-150l-59 -142h-81l58 137h-79v155z" />
<glyph glyph-name="hyphen" unicode="-" horiz-adv-x="273"
d="M15 342v131h243v-131h-243z" />
<glyph glyph-name="period" unicode="." horiz-adv-x="221"
d="M30 155h161v-155h-161v155z" />
<glyph glyph-name="slash" unicode="/" horiz-adv-x="353"
d="M350 893l-204 -986h-143l204 986h143z" />
<glyph glyph-name="zero" unicode="0"
d="M313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 670h-77v-540h77v540z" />
<glyph glyph-name="one" unicode="1" horiz-adv-x="231"
d="M107 800h94v-800h-139v606h-53v117l96 73z" />
<glyph glyph-name="two" unicode="2"
d="M169 342v-212h217v-130h-356v400l73 73h143v197h-77v-103h-139v160l73 73h210l73 -73v-311l-73 -74h-144z" />
<glyph glyph-name="three" unicode="3"
d="M313 800l73 -73v-273l-47 -47l47 -47v-287l-73 -73h-210l-73 73v160h139v-103h77v212h-121v131h121v197h-77v-103h-139v160l73 73h210z" />
<glyph glyph-name="four" unicode="4" horiz-adv-x="430"
d="M415 290v-122h-52v-168h-139v168h-209v130l197 502h151v-510h52zM230 532l-95 -242h95v242z" />
<glyph glyph-name="five" unicode="5"
d="M313 473l73 -73v-327l-73 -73h-210l-73 73v166h139v-109h77v212h-216v458h356v-130h-217v-197h144z" />
<glyph glyph-name="six" unicode="6"
d="M313 800l73 -73v-160h-140v103h-77v-197h144l73 -73v-327l-73 -73h-210l-73 73v654l73 73h210zM246 342h-77v-212h77v212z" />
<glyph glyph-name="seven" unicode="7" horiz-adv-x="354"
d="M9 800h336v-116l-170 -684h-145l172 670h-62v-70h-131v200z" />
<glyph glyph-name="eight" unicode="8"
d="M313 800l73 -73v-273l-47 -47l47 -47v-287l-73 -73h-210l-73 73v287l47 47l-47 47v273l73 73h210zM246 670h-77v-197h77v197zM169 130h77v212h-77v-212z" />
<glyph glyph-name="nine" unicode="9"
d="M313 800l73 -73v-654l-73 -73h-210l-73 73v160h139v-103h77v212h-143l-73 74v311l73 73h210zM169 473h77v197h-77v-197z" />
<glyph glyph-name="colon" unicode=":" horiz-adv-x="239"
d="M39 451h161v-155h-161v155zM39 155h161v-155h-161v155z" />
<glyph glyph-name="semicolon" unicode=";" horiz-adv-x="241"
d="M201 451v-155h-161v155h161zM41 155h161v-150l-59 -142h-81l58 137h-79v155z" />
<glyph glyph-name="less" unicode="&#x3c;" horiz-adv-x="308"
d="M292 470l-140 -62l140 -62l-42 -103l-228 114v102l228 113z" />
<glyph glyph-name="equal" unicode="=" horiz-adv-x="308"
d="M11 430v100h286v-100h-286zM11 283v101h286v-101h-286z" />
<glyph glyph-name="greater" unicode="&#x3e;" horiz-adv-x="308"
d="M64 572l228 -113v-102l-228 -114l-42 103l140 62l-140 62z" />
<glyph glyph-name="question" unicode="?" horiz-adv-x="403"
d="M112 250v138l73 73h50v209h-67v-109h-139v166l73 73h199l73 -73v-323l-73 -73h-50v-81h-139zM105 155h155v-155h-155v155z" />
<glyph glyph-name="at" unicode="@" horiz-adv-x="631"
d="M516 883l73 -73v-599l-73 -73h-260l-73 73v391l73 73h192v-430h28v533h-321v-756h394v-105h-434l-73 73v820l73 73h401zM297 245h37v322h-37v-322z" />
<glyph glyph-name="A" unicode="A" horiz-adv-x="397"
d="M250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="A" unicode="a" horiz-adv-x="397"
d="M250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="B" unicode="B" horiz-adv-x="408"
d="M315 800l73 -73v-273l-47 -47l47 -47v-287l-73 -73h-275v339h-19v135h19v326h275zM239 670h-70v-197h70v197zM169 130h70v212h-70v-212z" />
<glyph glyph-name="B" unicode="b" horiz-adv-x="408"
d="M315 800l73 -73v-273l-47 -47l47 -47v-287l-73 -73h-275v339h-19v135h19v326h275zM239 670h-70v-197h70v197zM169 130h70v212h-70v-212z" />
<glyph glyph-name="C" unicode="C"
d="M386 266v-193l-73 -73h-210l-73 73v654l73 73h210l73 -73v-193h-140v136h-77v-540h77v136h140z" />
<glyph glyph-name="C" unicode="c"
d="M386 266v-193l-73 -73h-210l-73 73v654l73 73h210l73 -73v-193h-140v136h-77v-540h77v136h140z" />
<glyph glyph-name="D" unicode="D" horiz-adv-x="408"
d="M305 800l73 -73v-654l-73 -73h-275v800h275zM239 670h-70v-540h70v540z" />
<glyph glyph-name="D" unicode="d" horiz-adv-x="408"
d="M305 800l73 -73v-654l-73 -73h-275v800h275zM239 670h-70v-540h70v540z" />
<glyph glyph-name="E" unicode="E" horiz-adv-x="342"
d="M327 670h-156v-200h127v-130h-127v-210h156v-130h-295v340h-17v130h17v330h295v-130z" />
<glyph glyph-name="E" unicode="e" horiz-adv-x="342"
d="M327 670h-156v-200h127v-130h-127v-210h156v-130h-295v340h-17v130h17v330h295v-130z" />
<glyph glyph-name="F" unicode="F" horiz-adv-x="334"
d="M322 670h-151v-221h151v-131h-151v-318h-139v318h-20v131h20v351h290v-130z" />
<glyph glyph-name="F" unicode="f" horiz-adv-x="334"
d="M322 670h-151v-221h151v-131h-151v-318h-139v318h-20v131h20v351h290v-130z" />
<glyph glyph-name="G" unicode="G"
d="M313 800l73 -73v-173h-140v116h-77v-540h77v199h-45v130h185v-386l-73 -73h-210l-73 73v654l73 73h210z" />
<glyph glyph-name="G" unicode="g"
d="M313 800l73 -73v-173h-140v116h-77v-540h77v199h-45v130h185v-386l-73 -73h-210l-73 73v654l73 73h210z" />
<glyph glyph-name="H" unicode="H" horiz-adv-x="414"
d="M244 800h140v-800h-140v342h-74v-342h-140v800h140v-327h74v327z" />
<glyph glyph-name="H" unicode="h" horiz-adv-x="414"
d="M244 800h140v-800h-140v342h-74v-342h-140v800h140v-327h74v327z" />
<glyph glyph-name="I" unicode="I" horiz-adv-x="199"
d="M169 800v-800h-139v800h139z" />
<glyph glyph-name="I" unicode="&#x131;" horiz-adv-x="199"
d="M169 800v-800h-139v800h139z" />
<glyph glyph-name="I" unicode="i" horiz-adv-x="199"
d="M169 800v-800h-139v800h139z" />
<glyph glyph-name="J" unicode="J" horiz-adv-x="370"
d="M340 800v-727l-73 -73h-173l-73 73v202h120v-145h59v670h140z" />
<glyph glyph-name="J" unicode="&#x237;" horiz-adv-x="370"
d="M340 800v-727l-73 -73h-173l-73 73v202h120v-145h59v670h140z" />
<glyph glyph-name="J" unicode="j" horiz-adv-x="370"
d="M340 800v-727l-73 -73h-173l-73 73v202h120v-145h59v670h140z" />
<glyph glyph-name="K" unicode="K" horiz-adv-x="426"
d="M270 0l-74 304l-29 -99v-205h-137v800h137v-345l91 345h148l-108 -366l120 -434h-148z" />
<glyph glyph-name="K" unicode="k" horiz-adv-x="426"
d="M270 0l-74 304l-29 -99v-205h-137v800h137v-345l91 345h148l-108 -366l120 -434h-148z" />
<glyph glyph-name="L" unicode="L" horiz-adv-x="335"
d="M169 130h151v-130h-290v800h139v-670z" />
<glyph glyph-name="L" unicode="l" horiz-adv-x="335"
d="M169 130h151v-130h-290v800h139v-670z" />
<glyph glyph-name="M" unicode="M" horiz-adv-x="507"
d="M335 800h142v-800h-140v462l-83 -216h-1l-83 215v-461h-140v800h142l81 -254z" />
<glyph glyph-name="M" unicode="m" horiz-adv-x="507"
d="M335 800h142v-800h-140v462l-83 -216h-1l-83 215v-461h-140v800h142l81 -254z" />
<glyph glyph-name="N" unicode="N"
d="M261 800h125v-800h-142l-89 461v-461h-125v800h142l89 -460v460z" />
<glyph glyph-name="N" unicode="n"
d="M261 800h125v-800h-142l-89 461v-461h-125v800h142l89 -460v460z" />
<glyph glyph-name="O" unicode="O"
d="M313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 670h-77v-540h77v540z" />
<glyph glyph-name="O" unicode="o"
d="M313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 670h-77v-540h77v540z" />
<glyph glyph-name="P" unicode="P" horiz-adv-x="392"
d="M300 800l74 -73v-353l-74 -73h-126v-301h-139v301h-16v128h16v371h265zM226 429v241h-60v-241h60z" />
<glyph glyph-name="P" unicode="p" horiz-adv-x="392"
d="M300 800l74 -73v-353l-74 -73h-126v-301h-139v301h-16v128h16v371h265zM226 429v241h-60v-241h60z" />
<glyph glyph-name="Q" unicode="Q"
d="M425 -39l-92 -93l-131 132h-99l-73 73v654l73 73h210l73 -73v-654l-36 -36zM169 670v-540h77v540h-77z" />
<glyph glyph-name="Q" unicode="q"
d="M425 -39l-92 -93l-131 132h-99l-73 73v654l73 73h210l73 -73v-654l-36 -36zM169 670v-540h77v540h-77z" />
<glyph glyph-name="R" unicode="R" horiz-adv-x="413"
d="M245 0v313q0 11 -10 11h-39q-11 0 -11 -11v-313h-138l1 322h-13v130h13v348h267l64 -81v-246q0 -14 -13 -30.5t-24 -24.5l-22 -14l15 -8q7 -4 16 -10t16 -11t9.5 -21.5t2.5 -26.5l-1 -327h-133zM185 452h60v220h-60v-220z" />
<glyph glyph-name="R" unicode="r" horiz-adv-x="413"
d="M245 0v313q0 11 -10 11h-39q-11 0 -11 -11v-313h-138l1 322h-13v130h13v348h267l64 -81v-246q0 -14 -13 -30.5t-24 -24.5l-22 -14l15 -8q7 -4 16 -10t16 -11t9.5 -21.5t2.5 -26.5l-1 -327h-133zM185 452h60v220h-60v-220z" />
<glyph glyph-name="S" unicode="S"
d="M386 561h-140v109h-77v-107l217 -278v-212l-73 -73h-210l-73 73v166h139v-109h77v109l-216 276v212l73 73h210l73 -73v-166z" />
<glyph glyph-name="S" unicode="s"
d="M386 561h-140v109h-77v-107l217 -278v-212l-73 -73h-210l-73 73v166h139v-109h77v109l-216 276v212l73 73h210l73 -73v-166z" />
<glyph glyph-name="T" unicode="T" horiz-adv-x="358"
d="M109 0v670h-100v130h340v-130h-100v-670h-140z" />
<glyph glyph-name="T" unicode="t" horiz-adv-x="358"
d="M109 0v670h-100v130h340v-130h-100v-670h-140z" />
<glyph glyph-name="U" unicode="U" horiz-adv-x="412"
d="M382 800v-727l-73 -73h-206l-73 73v727h139v-670h74v670h139z" />
<glyph glyph-name="U" unicode="u" horiz-adv-x="412"
d="M382 800v-727l-73 -73h-206l-73 73v727h139v-670h74v670h139z" />
<glyph glyph-name="V" unicode="V" horiz-adv-x="396"
d="M246 800h144l-115 -800h-155l-114 800h146l48 -551z" />
<glyph glyph-name="V" unicode="v" horiz-adv-x="396"
d="M246 800h144l-115 -800h-155l-114 800h146l48 -551z" />
<glyph glyph-name="W" unicode="W" horiz-adv-x="603"
d="M456 800h141l-84 -800h-144l-66 480l-65 -480h-144l-88 800h143l32 -524l54 524h136l54 -531z" />
<glyph glyph-name="W" unicode="w" horiz-adv-x="603"
d="M456 800h141l-84 -800h-144l-66 480l-65 -480h-144l-88 800h143l32 -524l54 524h136l54 -531z" />
<glyph glyph-name="X" unicode="X" horiz-adv-x="415"
d="M408 0h-147l-55 250l-55 -250h-143l109 408l-108 392h142l53 -237l55 237h145l-116 -394z" />
<glyph glyph-name="X" unicode="x" horiz-adv-x="415"
d="M408 0h-147l-55 250l-55 -250h-143l109 408l-108 392h142l53 -237l55 237h145l-116 -394z" />
<glyph glyph-name="Y" unicode="Y" horiz-adv-x="442"
d="M412 800l-122 -537v-263h-140v272l-120 528h147l44 -358l46 358h145z" />
<glyph glyph-name="Y" unicode="y" horiz-adv-x="442"
d="M412 800l-122 -537v-263h-140v272l-120 528h147l44 -358l46 358h145z" />
<glyph glyph-name="Z" unicode="Z" horiz-adv-x="381"
d="M174 130h186v-130h-339v117l186 553h-175v130h326v-117z" />
<glyph glyph-name="Z" unicode="z" horiz-adv-x="381"
d="M174 130h186v-130h-339v117l186 553h-175v130h326v-117z" />
<glyph glyph-name="bracketleft" unicode="[" horiz-adv-x="266"
d="M236 720h-67v-640h67v-130h-206v900h206v-130z" />
<glyph glyph-name="backslash" unicode="\" horiz-adv-x="351"
d="M1 893h143l204 -986h-143z" />
<glyph glyph-name="bracketright" unicode="]" horiz-adv-x="266"
d="M30 80h66v640h-66v130h206v-900h-206v130z" />
<glyph glyph-name="asciicircum" unicode="^" horiz-adv-x="308"
d="M304 644l-84 -69l-66 95l-66 -95l-83 69l114 156h71z" />
<glyph glyph-name="underscore" unicode="_" horiz-adv-x="375"
d="M-10 -238v131h395v-131h-395z" />
<glyph glyph-name="grave" unicode="`" horiz-adv-x="511"
d="M366 821h-82l-66 67l42 41z" />
<glyph glyph-name="braceleft" unicode="{" horiz-adv-x="326"
d="M230 447l-47 -47l47 -47v-273h67v-130h-133l-74 73v312h-75v130h75v312l74 73h133v-130h-67v-273z" />
<glyph glyph-name="bar" unicode="|" horiz-adv-x="211"
d="M175 900v-1000h-139v1000h139z" />
<glyph glyph-name="braceright" unicode="}" horiz-adv-x="326"
d="M311 465v-130h-75v-312l-73 -73h-133v130h66v273l48 47l-48 47v273h-66v130h133l73 -73v-312h75z" />
<glyph glyph-name="asciitilde" unicode="~" horiz-adv-x="308"
d="M28 326v108l54 53h66l41 -40v-53h22v93h69v-107l-53 -54h-67l-40 41v53h-23v-94h-69z" />
<glyph glyph-name="uni00A0" unicode="&#xa0;" horiz-adv-x="167"
/>
<glyph glyph-name="exclamdown" unicode="&#xa1;" horiz-adv-x="228"
d="M191 645h-155v155h155v-155zM34 0l25 550h110l25 -550h-160z" />
<glyph glyph-name="cent" unicode="&#xa2;" horiz-adv-x="415"
d="M312 702l74 -73v-169h-140v112h-77v-348h77v112h140v-169l-74 -73h-35v-94h-139v94h-35l-73 73v462l73 73h35v98h139v-98h35z" />
<glyph glyph-name="sterling" unicode="&#xa3;" horiz-adv-x="419"
d="M278 232h120v-233h-368v131h52v212h-52v131h52v254l73 73h166l73 -73v-153h-121v96h-52v-197h77v-131h-77v-212h57v102z" />
<glyph glyph-name="currency" unicode="&#xa4;" horiz-adv-x="437"
d="M145 533l-57 -58l-58 58l58 57zM291 533l58 57l58 -58l-58 -57zM284 513l47 -47v-119l-47 -47h-131l-48 47v119l48 47h131zM197 373h43v67h-43v-67zM145 280l-57 -57l-58 58l58 57zM291 280l58 58l58 -58l-58 -57z" />
<glyph glyph-name="yen" unicode="&#xa5;" horiz-adv-x="456"
d="M450 800l-129 -398h99v-101h-123v-77h123v-101h-123v-123h-140v123h-121v101h121v77h-121v101h97l-127 398h147l75 -307l85 307h137z" />
<glyph glyph-name="brokenbar" unicode="&#xa6;" horiz-adv-x="211"
d="M175 900v-431h-139v431h139zM36 -100v431h139v-431h-139z" />
<glyph glyph-name="section" unicode="&#xa7;" horiz-adv-x="363"
d="M333 652h-126v79h-51v-142h130l47 -47v-241l-36 -37l36 -37v-216l-47 -47h-209l-47 47v137h126v-79h51v142h-130l-47 47v241l37 38l-37 36v216l47 47h209l47 -47v-137zM156 484v-168h51v168h-51z" />
<glyph glyph-name="dieresis" unicode="&#xa8;" horiz-adv-x="370"
d="M4 898h88v-69h-88v69zM125 898h88v-69h-88v69z" />
<glyph glyph-name="copyright" unicode="&#xa9;" horiz-adv-x="632"
d="M108 -82l-66 66v827l66 67h416l66 -67v-827l-66 -66h-416zM146 16h340v764h-340v-764zM242 84l-60 60v507l60 60h150l60 -60v-165h-113v120h-43v-407h43v117h113v-172l-60 -60h-150z" />
<glyph glyph-name="ordfeminine" unicode="&#xaa;" horiz-adv-x="331"
d="M214 320l-14 115h-71l-13 -115h-101l80 480h141l80 -480h-102zM140 524h49l-25 209z" />
<glyph glyph-name="guillemotleft" unicode="&#xab;" horiz-adv-x="418"
d="M227 537l-103 -130l103 -132l-75 -76l-137 172v71l137 172zM403 537l-104 -130l104 -132l-76 -76l-136 172v71l136 172z" />
<glyph glyph-name="logicalnot" unicode="&#xac;" horiz-adv-x="308"
d="M11 467h286v-207h-122v87h-164v120z" />
<glyph glyph-name="uni00AD" unicode="&#xad;" horiz-adv-x="273"
d="M15 342v131h243v-131h-243z" />
<glyph glyph-name="registered" unicode="&#xae;" horiz-adv-x="632"
d="M524 878l66 -67v-827l-66 -66h-416l-66 66v827l66 67h416zM486 16v764h-340v-764h340zM294 355v-271h-110v627h200l60 -60v-236l-39 -39l69 -292h-112l-59 271h-9zM293 619v-167h41v167h-41z" />
<glyph glyph-name="macron" unicode="&#xaf;" horiz-adv-x="244"
d="M7 836v55h230v-55h-230z" />
<glyph glyph-name="degree" unicode="&#xb0;" horiz-adv-x="257"
d="M195 800l47 -47v-139l-47 -47h-133l-47 47v139l47 47h133zM106 640h45v87h-45v-87z" />
<glyph glyph-name="plusminus" unicode="&#xb1;" horiz-adv-x="308"
d="M215 524h82v-120h-82v-54h-122v54h-82v120h82v79h122v-79zM11 216v113h286v-113h-286z" />
<glyph glyph-name="twosuperior" unicode="&#xb2;" horiz-adv-x="278"
d="M15 400v193l52 52h97v62h-50v-32h-99v73l52 52h144l52 -52l-1 -138l-52 -52h-96v-65h149v-93h-248z" />
<glyph glyph-name="threesuperior" unicode="&#xb3;" horiz-adv-x="278"
d="M211 800l52 -52v-111l-34 -34l34 -34v-117l-52 -52h-144l-52 52v70h99v-29h50v64h-57v88h57v62h-50v-29h-99v70l52 52h144z" />
<glyph glyph-name="acute" unicode="&#xb4;" horiz-adv-x="399"
d="M159 821l107 108l42 -41l-67 -67h-82z" />
<glyph glyph-name="uni00B5" unicode="&#xb5;" horiz-adv-x="507"
d="M335 800h142v-800h-140v462l-83 -216h-1l-83 215v-461h-140v800h142l81 -254z" />
<glyph glyph-name="uni00B5" unicode="&#x3bc;" horiz-adv-x="507"
d="M335 800h142v-800h-140v462l-83 -216h-1l-83 215v-461h-140v800h142l81 -254z" />
<glyph glyph-name="uni00B5" unicode="&#x39c;" horiz-adv-x="507"
d="M335 800h142v-800h-140v462l-83 -216h-1l-83 215v-461h-140v800h142l81 -254z" />
<glyph glyph-name="paragraph" unicode="&#xb6;" horiz-adv-x="420"
d="M175 0v403h-72l-73 73v251l73 73h167v-800h-95zM295 0v800h95v-800h-95z" />
<glyph glyph-name="periodcentered" unicode="&#xb7;" horiz-adv-x="251"
d="M45 487h161v-155h-161v155z" />
<glyph glyph-name="cedilla" unicode="&#xb8;" horiz-adv-x="399"
d="M201 -107l-41 40l80 80h80z" />
<glyph glyph-name="onesuperior" unicode="&#xb9;" horiz-adv-x="230"
d="M83 400v284h-59v70l83 46h76v-400h-100z" />
<glyph glyph-name="ordmasculine" unicode="&#xba;" horiz-adv-x="246"
d="M54 325l-39 39v397l39 39h139l38 -39v-397l-38 -39h-139zM104 408h39v310h-39v-310z" />
<glyph glyph-name="guillemotright" unicode="&#xbb;" horiz-adv-x="418"
d="M227 443v-71l-137 -173l-75 77l104 131l-104 132l75 76zM266 615l137 -172v-71l-137 -173l-75 77l103 131l-103 132z" />
<glyph glyph-name="onequarter" unicode="&#xbc;" horiz-adv-x="599"
d="M183 400h-100v284h-59v70l83 46h76v-400zM385 800h110l-297 -800h-111zM557 164h37v-94h-37v-70h-99v70h-149v100l155 230h93v-236zM406 164h54v76z" />
<glyph glyph-name="onehalf" unicode="&#xbd;" horiz-adv-x="608"
d="M83 400v284h-59v70l83 46h76v-400h-100zM495 800l-297 -800h-111l298 800h110zM345 0v193l52 52h97v62h-50v-32h-99v73l52 52h144l52 -52l-1 -138l-52 -52h-96v-65h149v-93h-248z" />
<glyph glyph-name="threequarters" unicode="&#xbe;" horiz-adv-x="624"
d="M263 452l-52 -52h-144l-52 52v70h99v-29h50v64h-57v88h57v62h-50v-29h-99v70l52 52h144l52 -52v-111l-34 -34l34 -34v-117zM410 800h110l-297 -800h-111zM582 164h37v-94h-37v-70h-99v70h-149v100l155 230h93v-236zM431 164h54v76z" />
<glyph glyph-name="questiondown" unicode="&#xbf;" horiz-adv-x="403"
d="M298 645h-155v155h155v-155zM291 550v-138l-73 -73h-50v-209h67v109h139v-166l-73 -73h-199l-73 73v323l73 73h50v81h139z" />
<glyph glyph-name="Agrave" unicode="&#xc0;" horiz-adv-x="397"
d="M248 821h-82l-67 67l42 41zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="Agrave" unicode="&#xe0;" horiz-adv-x="397"
d="M248 821h-82l-67 67l42 41zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="Aacute" unicode="&#xc1;" horiz-adv-x="397"
d="M300 888l-67 -67h-82l107 108zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="Aacute" unicode="&#xe1;" horiz-adv-x="397"
d="M300 888l-67 -67h-82l107 108zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="Acircumflex" unicode="&#xc2;" horiz-adv-x="397"
d="M197 862l-34 -41h-74l79 93h57l79 -93h-74zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="Acircumflex" unicode="&#xe2;" horiz-adv-x="397"
d="M197 862l-34 -41h-74l79 93h57l79 -93h-74zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="Atilde" unicode="&#xc3;" horiz-adv-x="397"
d="M145 872v-51h-58v66l34 34h79l25 -25v-26h22v51h58v-66l-34 -34h-79l-25 25v26h-22zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="Atilde" unicode="&#xe3;" horiz-adv-x="397"
d="M145 872v-51h-58v66l34 34h79l25 -25v-26h22v51h58v-66l-34 -34h-79l-25 25v26h-22zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="Adieresis" unicode="&#xc4;" horiz-adv-x="397"
d="M181 898v-69h-89v69h89zM302 898v-69h-89v69h89zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="Adieresis" unicode="&#xe4;" horiz-adv-x="397"
d="M181 898v-69h-89v69h89zM302 898v-69h-89v69h89zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="Aring" unicode="&#xc5;" horiz-adv-x="397"
d="M252 821h-110l-37 38v57l37 37h110l37 -37v-57zM163 899v-24h69v24h-69zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="Aring" unicode="&#xe5;" horiz-adv-x="397"
d="M252 821h-110l-37 38v57l37 37h110l37 -37v-57zM163 899v-24h69v24h-69zM250 0l-18 195h-69l-16 -195h-141l110 800h161l114 -800h-141zM172 311h50l-27 291z" />
<glyph glyph-name="AE" unicode="&#xc6;" horiz-adv-x="572"
d="M555 670h-156v-200h126v-130h-126v-210h156v-130h-296v268h-68l-40 -268h-145l157 800h392v-130zM259 397v274h-9l-40 -274h49z" />
<glyph glyph-name="AE" unicode="&#xe6;" horiz-adv-x="572"
d="M555 670h-156v-200h126v-130h-126v-210h156v-130h-296v268h-68l-40 -268h-145l157 800h392v-130zM259 397v274h-9l-40 -274h49z" />
<glyph glyph-name="Ccedilla" unicode="&#xc7;"
d="M313 800l73 -73v-193h-140v136h-77v-540h77v136h140v-193l-73 -73h-52l-107 -107l-41 40l67 67h-77l-73 73v654l73 73h210z" />
<glyph glyph-name="Ccedilla" unicode="&#xe7;"
d="M313 800l73 -73v-193h-140v136h-77v-540h77v136h140v-193l-73 -73h-52l-107 -107l-41 40l67 67h-77l-73 73v654l73 73h210z" />
<glyph glyph-name="Egrave" unicode="&#xc8;" horiz-adv-x="342"
d="M229 821h-82l-67 67l42 41zM327 670h-156v-200h127v-130h-127v-210h156v-130h-295v340h-17v130h17v330h295v-130z" />
<glyph glyph-name="Egrave" unicode="&#xe8;" horiz-adv-x="342"
d="M229 821h-82l-67 67l42 41zM327 670h-156v-200h127v-130h-127v-210h156v-130h-295v340h-17v130h17v330h295v-130z" />
<glyph glyph-name="Eacute" unicode="&#xc9;" horiz-adv-x="342"
d="M281 888l-67 -67h-82l107 108zM327 670h-156v-200h127v-130h-127v-210h156v-130h-295v340h-17v130h17v330h295v-130z" />
<glyph glyph-name="Eacute" unicode="&#xe9;" horiz-adv-x="342"
d="M281 888l-67 -67h-82l107 108zM327 670h-156v-200h127v-130h-127v-210h156v-130h-295v340h-17v130h17v330h295v-130z" />
<glyph glyph-name="Ecircumflex" unicode="&#xca;" horiz-adv-x="342"
d="M177 862l-34 -41h-74l79 93h57l79 -93h-74zM327 670h-156v-200h127v-130h-127v-210h156v-130h-295v340h-17v130h17v330h295v-130z" />
<glyph glyph-name="Ecircumflex" unicode="&#xea;" horiz-adv-x="342"
d="M177 862l-34 -41h-74l79 93h57l79 -93h-74zM327 670h-156v-200h127v-130h-127v-210h156v-130h-295v340h-17v130h17v330h295v-130z" />
<glyph glyph-name="Edieresis" unicode="&#xcb;" horiz-adv-x="342"
d="M161 898v-69h-89v69h89zM282 898v-69h-89v69h89zM327 670h-156v-200h127v-130h-127v-210h156v-130h-295v340h-17v130h17v330h295v-130z" />
<glyph glyph-name="Edieresis" unicode="&#xeb;" horiz-adv-x="342"
d="M161 898v-69h-89v69h89zM282 898v-69h-89v69h89zM327 670h-156v-200h127v-130h-127v-210h156v-130h-295v340h-17v130h17v330h295v-130z" />
<glyph glyph-name="Igrave" unicode="&#xcc;" horiz-adv-x="199"
d="M151 821h-82l-67 67l42 41zM169 800v-800h-139v800h139z" />
<glyph glyph-name="Igrave" unicode="&#xec;" horiz-adv-x="199"
d="M151 821h-82l-67 67l42 41zM169 800v-800h-139v800h139z" />
<glyph glyph-name="Iacute" unicode="&#xcd;" horiz-adv-x="199"
d="M54 821l107 108l42 -41l-67 -67h-82zM169 800v-800h-139v800h139z" />
<glyph glyph-name="Iacute" unicode="&#xed;" horiz-adv-x="199"
d="M54 821l107 108l42 -41l-67 -67h-82zM169 800v-800h-139v800h139z" />
<glyph glyph-name="Icircumflex" unicode="&#xce;" horiz-adv-x="199"
d="M100 862l-34 -41h-74l79 93h57l79 -93h-74zM30 0v800h139v-800h-139z" />
<glyph glyph-name="Icircumflex" unicode="&#xee;" horiz-adv-x="199"
d="M100 862l-34 -41h-74l79 93h57l79 -93h-74zM30 0v800h139v-800h-139z" />
<glyph glyph-name="Idieresis" unicode="&#xcf;" horiz-adv-x="199"
d="M-5 898h89v-69h-89v69zM116 898h89v-69h-89v69zM169 800v-800h-139v800h139z" />
<glyph glyph-name="Idieresis" unicode="&#xef;" horiz-adv-x="199"
d="M-5 898h89v-69h-89v69zM116 898h89v-69h-89v69zM169 800v-800h-139v800h139z" />
<glyph glyph-name="Eth" unicode="&#xd0;" horiz-adv-x="408"
d="M305 800l73 -73v-654l-73 -73h-275v380h-35v55h35v365h275zM239 130v540h-70v-235h41v-55h-41v-250h70z" />
<glyph glyph-name="Eth" unicode="&#xf0;" horiz-adv-x="408"
d="M305 800l73 -73v-654l-73 -73h-275v380h-35v55h35v365h275zM239 130v540h-70v-235h41v-55h-41v-250h70z" />
<glyph glyph-name="Ntilde" unicode="&#xd1;"
d="M163 872v-51h-58v66l34 34h79l25 -25v-26h22v51h58v-66l-34 -34h-79l-25 25v26h-22zM261 800h125v-800h-142l-89 461v-461h-125v800h142l89 -460v460z" />
<glyph glyph-name="Ntilde" unicode="&#xf1;"
d="M163 872v-51h-58v66l34 34h79l25 -25v-26h22v51h58v-66l-34 -34h-79l-25 25v26h-22zM261 800h125v-800h-142l-89 461v-461h-125v800h142l89 -460v460z" />
<glyph glyph-name="Ograve" unicode="&#xd2;"
d="M259 821h-82l-67 67l42 41zM313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 670h-77v-540h77v540z" />
<glyph glyph-name="Ograve" unicode="&#xf2;"
d="M259 821h-82l-67 67l42 41zM313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 670h-77v-540h77v540z" />
<glyph glyph-name="Oacute" unicode="&#xd3;"
d="M162 821l107 108l42 -41l-67 -67h-82zM313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 670h-77v-540h77v540z" />
<glyph glyph-name="Oacute" unicode="&#xf3;"
d="M162 821l107 108l42 -41l-67 -67h-82zM313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 670h-77v-540h77v540z" />
<glyph glyph-name="Ocircumflex" unicode="&#xd4;"
d="M208 862l-34 -41h-74l79 93h57l79 -93h-74zM313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 130v540h-77v-540h77z" />
<glyph glyph-name="Ocircumflex" unicode="&#xf4;"
d="M208 862l-34 -41h-74l79 93h57l79 -93h-74zM313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 130v540h-77v-540h77z" />
<glyph glyph-name="Otilde" unicode="&#xd5;"
d="M99 821v66l34 34h79l25 -25v-26h22v51h58v-66l-34 -34h-79l-25 25v26h-22v-51h-58zM313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 670h-77v-540h77v540z" />
<glyph glyph-name="Otilde" unicode="&#xf5;"
d="M99 821v66l34 34h79l25 -25v-26h22v51h58v-66l-34 -34h-79l-25 25v26h-22v-51h-58zM313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 670h-77v-540h77v540z" />
<glyph glyph-name="Odieresis" unicode="&#xd6;"
d="M103 898h89v-69h-89v69zM224 898h89v-69h-89v69zM313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 670h-77v-540h77v540z" />
<glyph glyph-name="Odieresis" unicode="&#xf6;"
d="M103 898h89v-69h-89v69zM224 898h89v-69h-89v69zM313 800l73 -73v-654l-73 -73h-210l-73 73v654l73 73h210zM246 670h-77v-540h77v540z" />
<glyph glyph-name="multiply" unicode="&#xd7;" horiz-adv-x="308"
d="M301 474l-67 -67l67 -66l-80 -81l-67 67l-67 -67l-80 81l67 66l-67 67l80 80l67 -67l67 67z" />
<glyph glyph-name="Oslash" unicode="&#xd8;"
d="M313 800l73 -73v-654l-73 -73h-146l-17 -87h-55l17 87h-9l-73 73v654l73 73h146l16 87h56l-17 -87h9zM246 130v540h-77v-540h77z" />
<glyph glyph-name="Oslash" unicode="&#xf8;"
d="M313 800l73 -73v-654l-73 -73h-146l-17 -87h-55l17 87h-9l-73 73v654l73 73h146l16 87h56l-17 -87h9zM246 130v540h-77v-540h77z" />
<glyph glyph-name="Ugrave" unicode="&#xd9;" horiz-adv-x="412"
d="M257 821h-82l-67 67l42 41zM382 800v-727l-73 -73h-206l-73 73v727h139v-670h74v670h139z" />
<glyph glyph-name="Ugrave" unicode="&#xf9;" horiz-adv-x="412"
d="M257 821h-82l-67 67l42 41zM382 800v-727l-73 -73h-206l-73 73v727h139v-670h74v670h139z" />
<glyph glyph-name="Uacute" unicode="&#xda;" horiz-adv-x="412"
d="M161 821l107 108l42 -41l-67 -67h-82zM382 800v-727l-73 -73h-206l-73 73v727h139v-670h74v670h139z" />
<glyph glyph-name="Uacute" unicode="&#xfa;" horiz-adv-x="412"
d="M161 821l107 108l42 -41l-67 -67h-82zM382 800v-727l-73 -73h-206l-73 73v727h139v-670h74v670h139z" />
<glyph glyph-name="Ucircumflex" unicode="&#xdb;" horiz-adv-x="412"
d="M206 862l-34 -41h-74l79 93h57l79 -93h-74zM243 800h139v-727l-73 -73h-206l-73 73v727h139v-670h74v670z" />
<glyph glyph-name="Ucircumflex" unicode="&#xfb;" horiz-adv-x="412"
d="M206 862l-34 -41h-74l79 93h57l79 -93h-74zM243 800h139v-727l-73 -73h-206l-73 73v727h139v-670h74v670z" />
<glyph glyph-name="Udieresis" unicode="&#xdc;" horiz-adv-x="412"
d="M101 898h89v-69h-89v69zM222 898h89v-69h-89v69zM382 800v-727l-73 -73h-206l-73 73v727h139v-670h74v670h139z" />
<glyph glyph-name="Udieresis" unicode="&#xfc;" horiz-adv-x="412"
d="M101 898h89v-69h-89v69zM222 898h89v-69h-89v69zM382 800v-727l-73 -73h-206l-73 73v727h139v-670h74v670h139z" />
<glyph glyph-name="Yacute" unicode="&#xdd;" horiz-adv-x="394"
d="M301 888l-67 -67h-82l107 108zM388 800l-122 -537v-263h-140v272l-120 528h147l44 -358l46 358h145z" />
<glyph glyph-name="Yacute" unicode="&#xfd;" horiz-adv-x="394"
d="M301 888l-67 -67h-82l107 108zM388 800l-122 -537v-263h-140v272l-120 528h147l44 -358l46 358h145z" />
<glyph glyph-name="Thorn" unicode="&#xde;" horiz-adv-x="392"
d="M295 655l74 -73v-352l-74 -73h-126v-157h-139v800h139v-145h126zM229 285v240h-60v-240h60z" />
<glyph glyph-name="Thorn" unicode="&#xfe;" horiz-adv-x="392"
d="M295 655l74 -73v-352l-74 -73h-126v-157h-139v800h139v-145h126zM229 285v240h-60v-240h60z" />
<glyph glyph-name="germandbls" unicode="&#xdf;" horiz-adv-x="832"
d="M805 561h-140v109h-77v-107l217 -278v-212l-73 -73h-210l-73 73v166h139v-109h77v109l-216 276v212l73 73h210l73 -73v-166zM386 561h-140v109h-77v-107l217 -278v-212l-73 -73h-210l-73 73v166h139v-109h77v109l-216 276v212l73 73h210l73 -73v-166z" />
<glyph glyph-name="divide" unicode="&#xf7;" horiz-adv-x="308"
d="M92 596h125v-107h-125v107zM11 360v94h286v-94h-286zM92 325h125v-107h-125v107z" />
<glyph glyph-name="ydieresis" unicode="&#xff;" horiz-adv-x="394"
d="M181 898v-69h-89v69h89zM302 898v-69h-89v69h89zM388 800l-122 -537v-263h-140v272l-120 528h147l44 -358l46 358h145z" />
<glyph glyph-name="ydieresis" unicode="&#x178;" horiz-adv-x="394"
d="M181 898v-69h-89v69h89zM302 898v-69h-89v69h89zM388 800l-122 -537v-263h-140v272l-120 528h147l44 -358l46 358h145z" />
<glyph glyph-name="OE" unicode="&#x152;" horiz-adv-x="559"
d="M542 670h-156v-200h126v-130h-126v-210h156v-130h-439l-73 73v654l73 73h439v-130zM246 130v540h-77v-540h77z" />
<glyph glyph-name="OE" unicode="&#x153;" horiz-adv-x="559"
d="M542 670h-156v-200h126v-130h-126v-210h156v-130h-439l-73 73v654l73 73h439v-130zM246 130v540h-77v-540h77z" />
<glyph glyph-name="Scaron" unicode="&#x160;"
d="M236 821h-57l-79 93h74l34 -41l33 41h74zM386 561h-140v109h-77v-107l217 -278v-212l-73 -73h-210l-73 73v166h139v-109h77v109l-216 276v212l73 73h210l73 -73v-166z" />
<glyph glyph-name="Scaron" unicode="&#x161;"
d="M236 821h-57l-79 93h74l34 -41l33 41h74zM386 561h-140v109h-77v-107l217 -278v-212l-73 -73h-210l-73 73v166h139v-109h77v109l-216 276v212l73 73h210l73 -73v-166z" />
<glyph glyph-name="Tcaron" unicode="&#x164;" horiz-adv-x="358"
d="M207 821h-57l-79 93h74l34 -41l33 41h74zM9 800h340v-130h-100v-670h-140v670h-100v130z" />
<glyph glyph-name="Tcaron" unicode="&#x165;" horiz-adv-x="358"
d="M207 821h-57l-79 93h74l34 -41l33 41h74zM9 800h340v-130h-100v-670h-140v670h-100v130z" />
<glyph glyph-name="Zcaron" unicode="&#x17d;" horiz-adv-x="381"
d="M223 821h-57l-79 93h74l34 -41l33 41h74zM174 130h186v-130h-339v117l186 553h-175v130h326v-117z" />
<glyph glyph-name="Zcaron" unicode="&#x17e;" horiz-adv-x="381"
d="M223 821h-57l-79 93h74l34 -41l33 41h74zM174 130h186v-130h-339v117l186 553h-175v130h326v-117z" />
<glyph glyph-name="circumflex" unicode="&#x2c6;" horiz-adv-x="308"
d="M252 821h-74l-33 41l-34 -41h-74l79 93h57z" />
<glyph glyph-name="tilde" unicode="&#x2dc;" horiz-adv-x="308"
d="M47 821v66l34 34h79l25 -25v-26h22v51h58v-66l-34 -34h-79l-25 25v26h-22v-51h-58z" />
<glyph glyph-name="uni0306" unicode="&#x306;" horiz-adv-x="0"
d="M-207 910v-51l-37 -38h-110l-37 38v51h58v-35h68v35h58z" />
<glyph glyph-name="uni0307" unicode="&#x307;" horiz-adv-x="0"
d="M-321 898h89v-69h-89v69z" />
<glyph glyph-name="Sigma" unicode="&#x3a3;" horiz-adv-x="338"
d="M162 130h159v-130h-300v117l112 283l-112 283v117h296v-130h-155l105 -270z" />
<glyph glyph-name="Sigma" unicode="&#x3c3;" horiz-adv-x="338"
d="M162 130h159v-130h-300v117l112 283l-112 283v117h296v-130h-155l105 -270z" />
<glyph glyph-name="Sigma" unicode="&#x3c2;" horiz-adv-x="338"
d="M162 130h159v-130h-300v117l112 283l-112 283v117h296v-130h-155l105 -270z" />
<glyph glyph-name="uni1EBC" unicode="&#x1ebc;" horiz-adv-x="342"
d="M126 872v-51h-58v66l34 34h79l25 -25v-26h22v51h58v-66l-34 -34h-79l-25 25v26h-22zM325 670h-156v-200h127v-130h-127v-210h156v-130h-295v800h295v-130z" />
<glyph glyph-name="uni1EBC" unicode="&#x1ebd;" horiz-adv-x="342"
d="M126 872v-51h-58v66l34 34h79l25 -25v-26h22v51h58v-66l-34 -34h-79l-25 25v26h-22zM325 670h-156v-200h127v-130h-127v-210h156v-130h-295v800h295v-130z" />
<glyph glyph-name="endash" unicode="&#x2013;" horiz-adv-x="322"
d="M7 342v131h308v-131h-308z" />
<glyph glyph-name="emdash" unicode="&#x2014;" horiz-adv-x="503"
d="M7 342v131h489v-131h-489z" />
<glyph glyph-name="quoteleft" unicode="&#x2018;" horiz-adv-x="223"
d="M112 663h79v-156h-161v151l59 142h81z" />
<glyph glyph-name="quoteright" unicode="&#x2019;" horiz-adv-x="223"
d="M32 800h161v-151l-59 -142h-81l58 138h-79v155z" />
<glyph glyph-name="quotesinglbase" unicode="&#x201a;" horiz-adv-x="223"
d="M32 155h161v-150l-59 -142h-81l58 137h-79v155z" />
<glyph glyph-name="quotedblleft" unicode="&#x201c;" horiz-adv-x="373"
d="M170 800l-58 -137h60v-156h-142v151l59 142h81zM281 663h60v-156h-142v151l59 142h81z" />
<glyph glyph-name="quotedblright" unicode="&#x201d;" horiz-adv-x="373"
d="M32 645v155h142v-151l-59 -142h-81l58 138h-60zM201 800h142v-151l-60 -142h-81l59 138h-60v155z" />
<glyph glyph-name="quotedblbase" unicode="&#x201e;" horiz-adv-x="373"
d="M32 0v155h142v-150l-59 -142h-81l58 137h-60zM201 155h142v-150l-60 -142h-81l59 137h-60v155z" />
<glyph glyph-name="dagger" unicode="&#x2020;" horiz-adv-x="355"
d="M325 713v-120h-86v-593h-123v593h-86v120h86v87h123v-87h86z" />
<glyph glyph-name="daggerdbl" unicode="&#x2021;" horiz-adv-x="355"
d="M325 594h-86v-387h86v-120h-86v-87h-123v87h-86v120h86v387h-86v120h86v86h123v-86h86v-120z" />
<glyph glyph-name="bullet" unicode="&#x2022;" horiz-adv-x="315"
d="M45 522h224l1 -225h-225v225z" />
<glyph glyph-name="ellipsis" unicode="&#x2026;" horiz-adv-x="600"
d="M30 155h161v-155h-161v155zM220 155h161v-155h-161v155zM409 155h161v-155h-161v155z" />
<glyph glyph-name="perthousand" unicode="&#x2030;" horiz-adv-x="941"
d="M225 800l52 -52v-296l-52 -52h-143l-52 52v296l52 52h143zM536 800l-297 -800h-111l297 800h111zM129 493h49v214h-49v-214zM581 400l52 -52v-296l-52 -52h-143l-52 52v296l52 52h143zM860 400l52 -52v-296l-52 -52h-144l-52 52v296l52 52h144zM485 93h49v214h-49v-214z
M763 93h49v214h-49v-214z" />
<glyph glyph-name="guilsinglleft" unicode="&#x2039;" horiz-adv-x="242"
d="M227 537l-103 -130l103 -132l-75 -76l-137 172v71l137 172z" />
<glyph glyph-name="guilsinglright" unicode="&#x203a;" horiz-adv-x="242"
d="M90 615l137 -172v-71l-137 -173l-75 77l104 131l-104 132z" />
<glyph glyph-name="Euro" unicode="&#x20ac;" horiz-adv-x="450"
d="M347 800l73 -73v-165h-140v108h-76v-123h80v-102h-80v-76h80v-101h-80v-138h76v117h140v-174l-73 -73h-209l-73 73v195h-50v101h50v76h-50v102h50v180l73 73h209z" />
<glyph glyph-name="trademark" unicode="&#x2122;" horiz-adv-x="563"
d="M30 720v80h207v-80h-61v-401h-85v401h-61zM450 800h83v-481h-81v281l-20 -53l1 -2h-2l-33 -90h-1l-54 144v-280h-82v481h83l54 -154z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1 @@
/* @font-face kit by Fonts2u (https://fonts2u.com) */ @font-face {font-family:"Agency";src:url("Agency.ttf") format("truetype");font-weight:normal;font-style:normal;}

View file

@ -0,0 +1 @@
/* @font-face kit by Fonts2u (https://fonts2u.com) */ @font-face {font-family:"Overpass-Reg";src:url("Overpass_Regulard41d.eot?") format("eot"),url("Overpass_Regular.woff") format("woff"),url("Overpass_Regular.ttf") format("truetype"),url("Overpass_Regular.svg#Overpass-Reg") format("svg");font-weight:normal;font-style:normal;}

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="#ffffff" d="M524.5 69.8a1.5 1.5 0 0 0 -.8-.7A485.1 485.1 0 0 0 404.1 32a1.8 1.8 0 0 0 -1.9 .9 337.5 337.5 0 0 0 -14.9 30.6 447.8 447.8 0 0 0 -134.4 0 309.5 309.5 0 0 0 -15.1-30.6 1.9 1.9 0 0 0 -1.9-.9A483.7 483.7 0 0 0 116.1 69.1a1.7 1.7 0 0 0 -.8 .7C39.1 183.7 18.2 294.7 28.4 404.4a2 2 0 0 0 .8 1.4A487.7 487.7 0 0 0 176 479.9a1.9 1.9 0 0 0 2.1-.7A348.2 348.2 0 0 0 208.1 430.4a1.9 1.9 0 0 0 -1-2.6 321.2 321.2 0 0 1 -45.9-21.9 1.9 1.9 0 0 1 -.2-3.1c3.1-2.3 6.2-4.7 9.1-7.1a1.8 1.8 0 0 1 1.9-.3c96.2 43.9 200.4 43.9 295.5 0a1.8 1.8 0 0 1 1.9 .2c2.9 2.4 6 4.9 9.1 7.2a1.9 1.9 0 0 1 -.2 3.1 301.4 301.4 0 0 1 -45.9 21.8 1.9 1.9 0 0 0 -1 2.6 391.1 391.1 0 0 0 30 48.8 1.9 1.9 0 0 0 2.1 .7A486 486 0 0 0 610.7 405.7a1.9 1.9 0 0 0 .8-1.4C623.7 277.6 590.9 167.5 524.5 69.8zM222.5 337.6c-29 0-52.8-26.6-52.8-59.2S193.1 219.1 222.5 219.1c29.7 0 53.3 26.8 52.8 59.2C275.3 311 251.9 337.6 222.5 337.6zm195.4 0c-29 0-52.8-26.6-52.8-59.2S388.4 219.1 417.9 219.1c29.7 0 53.3 26.8 52.8 59.2C470.7 311 447.5 337.6 417.9 337.6z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -0,0 +1,721 @@
/*jslint browser: true, nomen: true, plusplus: true */
/// @file coherent.js
/// @namespace engine
/// Coherent UI JavaScript interface.
/// The `engine` module contains all functions for communication between the UI and the game / application.
(function (factory) {
if (typeof module === 'object' && module.exports) {
module.exports = factory(global, global.engine, false);
} else {
window.engine = factory(window, window.engine, true);
}
})(function (global, engine, hasOnLoad) {
'use strict';
var VERSION = [1, 10, 2, 0];
/**
* Event emitter
*
* @class Emitter
*/
function Emitter() {
this.events = {};
}
function Handler(code, context) {
this.code = code;
this.context = context;
}
Emitter.prototype._createClear = function (object, name, handler) {
return function() {
var handlers = object.events[name];
if (handlers) {
var index = -1;
// this was in native previously
if(handler === undefined)
{
for(var i = 0; i < handlers.length; ++i)
{
if(handlers[i].wasInCPP !== undefined)
{
index = i;
break;
}
}
}
else
{
index = handlers.indexOf(handler);
}
if (index != -1) {
handlers.splice(index, 1);
if (handlers.length === 0) {
delete object.events[name];
}
}
} else {
if(engine.RemoveOnHandler !== undefined) {
engine.RemoveOnHandler(name);
}
}
};
};
/// @file coherent.js
/**
* Add a handler for an event
*
* @method on
* @param name the event name
* @param callback function to be called when the event is triggered
* @param context this binding for executing the handler, defaults to the Emitter
* @return connection object
*/
Emitter.prototype.on = function (name, callback, context) {
var handlers = this.events[name];
if (handlers === undefined)
handlers = this.events[name] = [];
var handler = new Handler(callback, context || this);
handlers.push(handler);
return { clear: this._createClear(this, name, handler) };
};
/**
* Remove a handler from an event
*
* @method off
* @param name the event name
* @param callback function to be called when the event is triggered
* @param context this binding for executing the handler, defaults to the Emitter
* @return connection object
*/
Emitter.prototype.off = function (name, handler, context) {
var handlers = this.events[name];
if (handlers !== undefined) {
context = context || this;
var index;
var length = handlers.length;
for (index = 0; index < length; ++index) {
var reg = handlers[index];
if (reg.code == handler && reg.context == context) {
break;
}
}
if (index < length) {
handlers.splice(index, 1);
if (handlers.length === 0) {
delete this.events[name];
}
}
}
else
{
engine.RemoveOnHandler(name);
}
};
var isAttached = engine !== undefined;
engine = engine || {};
/// @var engine.isAttached
/// Indicates whether the script is currently running inside Coherent GT
engine.isAttached = isAttached;
/// @var engine.forceEnableMocking
/// Indicates whether mocking should be enabled despite running inside Coherent GT
engine.forceEnableMocking = global.engineForceEnableMocking || false;
/// @var engine.IsAttached
/// [DEPRECATED] Indicates whether the script is currently running inside Coherent GT
/// @warning This property is deprecated, please use engine.isAttached (with camelCase)
engine.IsAttached = engine.isAttached;
engine.onEventsReplayed = null;
Emitter.prototype.trigger = function(name) {
var handlers = this.events[name];
if (handlers !== undefined) {
var args = Array.prototype.slice.call(arguments, 1);
handlers.forEach(function (handler) {
handler.code.apply(handler.context, args);
});
}
};
Emitter.prototype.merge = function (emitter) {
var lhs = this.events,
rhs = emitter.events,
push = Array.prototype.push,
events;
for (var e in rhs) {
events = lhs[e] = lhs[e] || [];
push.apply(events, rhs[e]);
}
};
var pending = 'pending';
var fulfilled = 'fulfilled';
var broken = 'broken';
function callAsync(code, context, argument) {
var async = function () {
code.call(context, argument);
};
setTimeout(async);
}
function Promise () {
this.emitter = new Emitter();
this.state = pending;
this.result = null;
}
Promise.prototype.resolve = function (result) {
this.state = fulfilled;
this.result = result;
this.emitter.trigger(fulfilled, result);
};
Promise.prototype.reject = function (result) {
this.state = broken;
this.result = result;
this.emitter.trigger(broken, result);
};
Promise.prototype.success = function (code, context) {
if (this.state !== fulfilled) {
this.emitter.on(fulfilled, code, context);
} else {
callAsync(code, context || this, this.result);
}
return this;
};
Promise.prototype.always = function (code, context) {
this.success(code, context);
this.otherwise(code, context);
return this;
};
Promise.prototype.otherwise = function (code, context) {
if (this.state !== broken) {
this.emitter.on(broken, code, context);
} else {
callAsync(code, context || this, this.result);
}
return this;
};
Promise.prototype.merge = function (other) {
if (this.state === pending) {
this.emitter.merge(other.emitter);
} else {
var handlers = other.emitter.events[this.state];
var self = this;
if (handlers !== undefined) {
handlers.forEach(function (handler) {
handler.code.call(handler.context, self.result);
});
}
}
};
Promise.prototype.make_chain = function (handler, promise, ok) {
return function (result) {
var handlerResult;
try {
handlerResult = handler.code.call(handler.context, result);
if (handlerResult instanceof Promise) {
handlerResult.merge(promise);
} else if (this.state === ok) {
promise.resolve(handlerResult);
} else {
promise.reject(handlerResult);
}
} catch (error) {
promise.reject(error);
}
};
};
function makeDefaultHandler(promise) {
return function () {
return promise;
};
}
Promise.prototype.then = function (callback, errback) {
var promise = new Promise();
var handler = new Handler(callback || makeDefaultHandler(this), this);
this.success(this.make_chain(handler, promise, fulfilled), this);
var errorHandler = new Handler(errback || makeDefaultHandler(this), this);
this.otherwise(this.make_chain(errorHandler, promise, broken), this);
return promise;
};
if (!engine.isAttached || engine.forceEnableMocking) {
Emitter.prototype.on = function (name, callback, context) {
var handlers = this.events[name];
if (this.browserCallbackOn) {
this.browserCallbackOn(name, callback, context);
}
if (handlers === undefined) {
handlers = this.events[name] = [];
}
var handler = new Handler(callback, context || this);
handlers.push(handler);
return { clear: this._createClear(this, name, handler) };
};
Emitter.prototype.off = function (name, handler, context) {
var handlers = this.events[name];
if (handlers !== undefined) {
context = context || this;
var index;
var length = handlers.length;
for (index = 0; index < length; ++index) {
var reg = handlers[index];
if (reg.code == handler && reg.context == context) {
break;
}
}
if (index < length) {
handlers.splice(index, 1);
if (handlers.length === 0) {
delete this.events[name];
if (this.browserCallbackOff) {
this.browserCallbackOff(name, handler, context);
}
}
}
}
};
engine.SendMessage = function (name, id) {
var args = Array.prototype.slice.call(arguments, 2);
var deferred = engine._ActiveRequests[id];
delete engine._ActiveRequests[id];
var call = function () {
var mock = engine._mocks[name];
if (mock !== undefined) {
deferred.resolve(mock.apply(engine, args));
}
};
window.setTimeout(call, 16);
};
engine.TriggerEvent = function () {
var args = Array.prototype.slice.call(arguments);
var trigger = function () {
var mock = engine._mocks[args[0]];
if (mock !== undefined) {
mock.apply(engine, args.slice(1));
}
};
window.setTimeout(trigger, 16);
};
engine.BindingsReady = function () {
engine._OnReady();
};
engine.__observeLifetime = function () {
};
engine.beginEventRecording =
engine.endEventRecording =
engine.saveEventRecord = function() {
console.warning("Event recording will not work in the browser!");
};
engine._mocks = {};
engine._mockImpl = function (name, mock, isCppCall, isEvent) {
if (mock && isCppCall) {
this._mocks[name] = mock;
}
// Extract the name of the arguments from Function.prototype.toString
var functionStripped = mock.toString().replace("function " + mock.name + "(", "");
var rightParanthesis = functionStripped.indexOf(")");
var args = functionStripped.substr(0, rightParanthesis);
if (this.browserCallbackMock) {
this.browserCallbackMock(name,
args,
isCppCall,
Boolean(isEvent));
}
}
engine.mock = function (name, mock, isEvent) {
this._mockImpl(name, mock, true, isEvent);
};
// Mock the call to translate to always return the key
engine.translate = function (text) {
return text;
};
}
engine.events = {};
for (var property in Emitter.prototype) {
engine[property] = Emitter.prototype[property];
}
if (engine.isAttached && !engine.forceEnableMocking) {
engine.on = function (name, callback, context) {
var handlers = this.events[name];
if (handlers === undefined && engine.AddOrRemoveOnHandler !== undefined) {
// Check where to cache the handler
var prevEvent = engine.AddOrRemoveOnHandler(name, callback, context);
// handler cached in C++
if(prevEvent === undefined) {
return { clear: this._createClear(this, name, undefined) };
}
handlers = this.events[name] = [];
// Add the previous handler
var prevHandler = new Handler(prevEvent[0], prevEvent[1] || this);
prevHandler.wasInCPP = true;
handlers.push(prevHandler);
} else if (handlers === undefined) {
handlers = this.events[name] = [];
}
var handler = new Handler(callback, context || this);
handlers.push(handler);
return { clear: this._createClear(this, name, handler) };
}
}
/// @function engine.on
/// Register handler for and event
/// @param {String} name name of the event
/// @param {Function} callback callback function to be executed when the event has been triggered
/// @param context *this* context for the function, by default the engine object
/// @function engine.beginEventRecording
/// Begins recording all events triggered using View::TriggerEvent from the game
/// @function engine.endEventRecording
/// Ends event recording
/// @function engine.saveEventRecord
/// Saves the events recorded in between the last calls to engine.beginEventRecording and engine.endEventRecording to a file
/// @param {String} path The path to the file where to save the recorded events. Optional. Defaults to "eventRecord.json"
/// @function engine.replayEvents
/// Replays the events previously recorded and stored in path. If you need to be notified when all events
/// are replayed, assign a callback to engine.onEventsReplayed
/// @param {Number} timeScale The speed at which to replay the events (e.g. pass 2 to double the speed). Optional. Defaults to 1.
/// @param {String} path The path to the file the recorded events are stored. Optional. Defaults to "eventRecord.json"
/// @function engine.translate
/// Translates the given text by invoking the system's localization manager if one exists.
/// @param {text} text The text to translate.
/// @return {String} undefined if no localization manager is set or no translation exists, else returns the translated string
/// @function engine.reloadLocalization
/// Updates the text on all elements with the data-l10n-id attribute by calling engine.translate
/// @function engine.off
/// Remove handler for an event
/// @param {String} name name of the event, by default removes all events
/// @param {Function} callback the callback function to be removed, by default removes all callbacks for a given event
/// @param context *this* context for the function, by default all removes all callbacks, regardless of context
/// @warning Removing all handlers for `engine` will remove some *Coherent UI* internal events, breaking some functionality.
/// @function engine.trigger
/// Trigger an event
/// This function will trigger any C++ handler registered for this event with `Coherent::UI::View::RegisterForEvent`
/// @param {String} name name of the event
/// @param ... any extra arguments to be passed to the event handlers
engine._trigger = Emitter.prototype.trigger;
var concatArguments = Array.prototype.concat;
engine.trigger = function (name) {
this._trigger.apply(this, arguments);
this.TriggerEvent.apply(this, arguments);
if (this.events['all'] !== undefined) {
var allArguments = concatArguments.apply(['all'], arguments);
this._trigger.apply(this, allArguments);
}
};
/// @function engine.showOverlay
/// Shows the debugging overlay in the browser.
/// Will also work in Coherent GT only if *engineForceEnableMocking* is set to *true*.
engine.showOverlay = function () {};
/// @function engine.hideOverlay
/// Hides the debugging overlay in the browser.
/// Will also work in Coherent GT only if *engineForceEnableMocking* is set to *true*.
engine.hideOverlay = function () {};
/// @function engine.mock
/// Mocks a C++ function call with the specified function.
/// Will also work in Coherent GT only if *engineForceEnableMocking* is set to *true*.
/// @param {String} name name of the event
/// @param {Function} mock a function to be called in-place of your native binding
/// @param {Boolean} isEvent whether you are mocking an event or function call
if (engine.isAttached && !engine.forceEnableMocking) {
engine.mock = function (name, mock, isEvent) { };
}
engine._BindingsReady = false;
engine._WindowLoaded = false;
engine._RequestId = 0;
engine._ActiveRequests = {};
/// @function engine.createDeferred
/// Create a new deferred object.
/// Use this to create deferred / promises that can be used together with `engine.call`.
/// @return {Deferred} a new deferred object
/// @see @ref CustomizingPromises
engine.createDeferred = (global.engineCreateDeferred === undefined) ?
function () { return new Promise(); }
: global.engineCreateDeferred;
/// @function engine.call
/// Call asynchronously a C++ handler and retrieve the result
/// The C++ handler must have been registered with `Coherent::UI::View::BindCall`
/// @param {String} name name of the C++ handler to be called
/// @param ... any extra parameters to be passed to the C++ handler
/// @return {Deferred} deferred object whose promise is resolved with the result of the C++ handler
engine.call = function () {
engine._RequestId++;
var id = engine._RequestId;
var deferred = engine.createDeferred();
engine._ActiveRequests[id] = deferred;
var messageArguments = Array.prototype.slice.call(arguments);
messageArguments.splice(1, 0, id);
engine.SendMessage.apply(this, messageArguments);
return deferred;
};
engine._Result = function (requestId) {
var deferred = engine._ActiveRequests[requestId];
if (deferred !== undefined)
{
delete engine._ActiveRequests[requestId];
var resultArguments = Array.prototype.slice.call(arguments);
resultArguments.shift();
deferred.resolve.apply(deferred, resultArguments);
}
};
engine._Errors = [ 'Success', 'ArgumentType', 'NoSuchMethod', 'NoResult' ];
engine._ForEachError = function (errors, callback) {
var length = errors.length;
for (var i = 0; i < length; ++i) {
callback(errors[i].first, errors[i].second);
}
};
engine._MapErrors = function (errors) {
var length = errors.length;
for (var i = 0; i < length; ++i) {
errors[i].first = engine._Errors[errors[i].first];
}
};
engine._TriggerError = function (type, message) {
engine.trigger('Error', type, message);
};
engine._OnError = function (requestId, errors) {
engine._MapErrors(errors);
if (requestId === null || requestId === 0) {
engine._ForEachError(errors, engine._TriggerError);
}
else {
var deferred = engine._ActiveRequests[requestId];
delete engine._ActiveRequests[requestId];
deferred.reject(errors);
}
};
engine._eventHandles = {};
engine._Register = function (eventName) {
var trigger = (function (name, engine) {
return function () {
var eventArguments = [name];
eventArguments.push.apply(eventArguments, arguments);
engine.TriggerEvent.apply(this, eventArguments);
};
}(eventName, engine));
engine._eventHandles[eventName] = engine.on(eventName, trigger);
};
engine._removeEventThunk = function (name) {
var handle = engine._eventHandles[name];
handle.clear();
delete engine._eventHandles[name];
};
engine._Unregister = function (name) {
if (typeof name === 'string') {
engine._removeEventThunk(name);
} else {
name.forEach(engine._removeEventThunk, engine);
}
};
function createMethodStub(name) {
var stub = function() {
var args = Array.prototype.slice.call(arguments);
args.splice(0, 0, name, this._id);
return engine.call.apply(engine, args);
};
return stub;
}
engine._boundTypes = {};
engine._createInstance = function (args) {
var type = args[0],
id = args[1],
methods = args[2],
constructor = engine._boundTypes[type];
if (constructor === undefined) {
constructor = function (id) {
this._id = id;
};
constructor.prototype.__Type = type;
methods.forEach(function (name) {
constructor.prototype[name] = createMethodStub(type + '_' + name);
});
engine._boundTypes[type] = constructor;
}
var instance = new constructor(id);
engine.__observeLifetime(instance);
return instance;
}
engine._OnReady = function () {
engine._BindingsReady = true;
if (engine._WindowLoaded) {
engine.trigger('Ready');
}
};
engine._OnWindowLoaded = function () {
engine._WindowLoaded = true;
if (engine._BindingsReady) {
engine.trigger('Ready');
}
};
engine._ThrowError = function (error) {
var prependTab = function (s) { return "\t" + s; };
var errorString = error.name + ": " + error.message + "\n" +
error.stack.split("\n").map(prependTab).join("\n");
console.error(errorString);
};
if (hasOnLoad) {
global.addEventListener("load", function () {
engine._OnWindowLoaded();
});
} else {
engine._WindowLoaded = true;
}
engine._coherentGlobalCanvas = document.createElement('canvas');
engine._coherentGlobalCanvas.id = "coherentGlobalCanvas";
engine._coherentGlobalCanvas.width = 1;
engine._coherentGlobalCanvas.height = 1;
engine._coherentGlobalCanvas.style.zIndex = 0;
engine._coherentGlobalCanvas.style.position = "absolute";
engine._coherentGlobalCanvas.style.border = "0px solid";
engine._coherentLiveImageData = new Array();
engine._coherentCreateImageData = function(name, guid) {
var ctx = engine._coherentGlobalCanvas.getContext("2d");
var coherentImage = ctx.coherentCreateImageData(guid);
engine._coherentLiveImageData[name] = coherentImage;
}
engine._coherentUpdatedImageData = function(name) {
engine._coherentLiveImageData[name].coherentUpdate();
var canvases = document.getElementsByTagName('canvas');
for(var i = 0; i < canvases.length; ++i) {
if(canvases[i].onEngineImageDataUpdated != null) {
canvases[i].onEngineImageDataUpdated(name,
engine._coherentLiveImageData[name]);
}
}
}
engine.reloadLocalization = function () {
var localizedElements = document.querySelectorAll('[data-l10n-id]');
for (var i = 0; i < localizedElements.length; i++) {
var element = localizedElements.item(i);
var translated = engine.translate(element.dataset.l10nId);
if (!translated) {
var warning = "Failed to find translation for key: " + element.dataset.l10nId;
console.warn(warning);
} else {
element.textContent = translated;
}
}
};
engine.on("_coherentCreateImageData", engine._coherentCreateImageData);
engine.on("_coherentUpdatedImageData", engine._coherentUpdatedImageData);
engine.on('_Result', engine._Result, engine);
engine.on('_Register', engine._Register, engine);
engine.on('_Unregister', engine._Unregister, engine);
engine.on('_OnReady', engine._OnReady, engine);
engine.on('_OnError', engine._OnError, engine);
engine.on('__OnReplayRecordCompleted', function(jsonRecords) {
if (engine.onEventsReplayed) {
engine.onEventsReplayed();
}
});
engine.BindingsReady(VERSION[0], VERSION[1], VERSION[2], VERSION[3]);
return engine;
});

View file

@ -0,0 +1,166 @@
(function (engine) {
if (engine.isAttached && !engine.forceEnableMocking) {
return;
}
var OVERLAY_ID = "coherent-browser-debug-overlay",
JS_CALLS_LIST_ID = "coherent-browser-debug-js-list",
CPP_CALLS_LIST_ID = 'coherent-browser-debug-cpp-list';
var logoDataUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABHCAYAAAC3bEFmAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAACO5JREFUeF7tXAtwVNUZ3lTa2k5fdvqYTluZMsDeu+FRRSo+6tbsuZsoGNCytpVCsnd3wxsRtCG80nEsyCN0LPJatI/RttaIDq3jg6lKpdNplYkdwSIhPJJCUkoAw0tbJafff/YE9+6efWT37m6y6T/zzWbvnvOf///uf/7/3Ms5OPIpNWPGfDRU6hkb0I15psYeMXVjG8GvGZuCGguZmjHC5/NdJpsXj/gcvsuCw41vwOnGgM66QEA3wKMBIi7i95MB3bvhh0OML9U7HB+R3fu3+IdWfDGgseW4u/+KdToxWAsiYn7NEPZZqab/iems/HTAafjg0GE49EG8kymgiT5vmjrz1IyZ8Emptn9IwOn5Dpx+EXf9v3GO9R7vQtdTgRFlo6T6vik0Z01nuRN3bAvwnsKRLMHOBHV2f3Wp9+sYriQyah+RKrf7ciSxpQjbNhgbl+DsAiVKELEvqHlr+kS1qBrsvhzz/DY4/ncYmDPHY4EIuwgyXqH8UDG04uPSnPwJlbVqp2ckDNiB0nVeZWQ+gBxzFjY0TnWxK+sd9fkpm/5hniF+ja0OaMZplVGFAG5Ch+lki5EovyzNtF1KAi7v5xHqc8B4O4WgypCCgsqmZjT7dXbnLJf7U9Lu7IWyO5aqt0P5LoTc+8rB+xI09h98PouVZ5l0ITNxu92D/KXe0aaT1uu5KGu5BWy+gAQdrtbZMMpZ0q30hJavpu5dBzY7oCxv2T0H6EbkHkEEL0trNUlzJ6h5piHUW1Bm+rPjFoj1g2Y0hZyscm6isjllaMVnsMh4uj+Ge9rQ2DmQsZ7WL9LtiIgFjWY8GllpKToWEcTzCZ5Oox+3UeKM6f0iw9sFqhRYwQrvQ1r5V3ARj6yKhsUMlHWa9g6wcYcIC1WjYobIB56rHKLcqRoMAODGL3Dgj6difxgowDPEZhDAnlb9OEAQ7jUBQZeXzxt3B68rr+JLbvWnxCLvND732ts5HqaU+qaPvpXXVVQr+86+ZqKyTyzmjJ2k7F/LpvLQiHJlH4n0CSDHa42p/I+PPcPbW1r5mZOn+dlT76REV+dpfnT/If6HjY/zhTd9L46IZROC/N9t7cq+D8+pt7RNhPC9K5T9W5re4vOu+66yj0R6BBCLjyxaxU8c7eCZSnd3Nz/afJg/NGMJD5Z+eFfqJ9Xw82fOyVZW2bzgAYsdifCLJWtlD6u0H2zld18/WdlHIjUBdOe33reSv3f+glSbnVDkNPh/dEm/HQT8PBsCsPzdpvjhEu4rm8I7jx2XKu2RoweO8LnfmiT020LA4owJ2JI8AlwGf+nX26U6e6VxTViMUfApkCwC6C4dbz0m1dkr+/76Bp+BClBIAkwnSx4BVOq6Ok9JdVbZu2s337LgJ3zj3fcnRBi5o/WtA7KHVSghknEFngLJk+DS8QFRTlSyfvZyZZ9YNK7ZKntYhSJr4U3fLzwByaZAMgLWheqUfWLxxMpNsodVBAFuewjIIgcknwIDgIDMp8C6YN8hIGfrADsIeHDKfP7c1ifiQGVw9tiJBc0BKauAHQSkQh+IgNzmgFT4PwGFJiDTKbD5nvSMS4X6iUTAWanVKo/WrVb2iUWiRJs1AfT8/86Jk1KdVY7sbea/W7WF/2bFhoxAzs26+ja+yJgGkrukVqtExtis7N+DxrVbxfsElbTua4m8jFH4JpG8CswaU8k7DrVJdfZKTxmcedUE8Xcu5M0//Y1PH3WL0rcIUAVSPQ5v3/AYvc2QKu2THgJojN9jDHphYqeQvl8t+2mcP9FIWQYJ82+YLB5c7JZoAu658U7bxzjQtJfPRgTH+hOD5FOgBw1mbcJckKlEE0DvHX42c6l4W2SHtB9s48srQ3F+xEJEQDoEBEu9fE31vbbeJQsBYoxy3hCo5ccOHJEtei/dFy/y5t17+I8nTRev8qJ9UCFtAnpAJeXJ1WG+Z9fr/J/7DwljM8WeV1/D9PLFjUHXGteG+d4/7057jLa3D/I3Xv4L/+WydWm/SieklQNiQcxS5qbXzURIpqB/W4h+O5zNGKRrxjfHK3WlQHo5oFiBVTCmgNjDr25Q7DA1Y6MD82CF6seBAETADIdfN24p6n1BiXHa7ypzOWgHKPLAfkWDogZ83nFp61xkl0jhNj3nH6wrMNy4QThPQqe5cLEBU6H4d4lhuiP5zYLb1kMXFA4g4WHBjqJjMQBhfyKgeep8Lt/HpNtWoR/ovA8Yeq2YNk6Ju64bL4S0sqvT2jdMx9UoTNDpH1DQb7fMyin9Oj6nJtwim0RK6ABCwMkaMC2OQ1G/IUI6fizoZIurRrs/R75EXMpMSrBYugYk/FbssFQM2JeAyD2PyF0varydQpUCRFSC3d19lIgLKOUvUXnr9fmA3kjNcPcXIvlBTAuVIflGN2w55NfYD+i0qjQz92LqNw/G4GGgM8qYfIIOQ3Qg3NfSahYmldBZwlhEXxeGQ2inOH3P+oB2vds9iPbbwohX8lo2aQpqxpN0UrXHsSm06Vtjz5EtaLMzGLHphVBpBR3X34nr26oGi4ToCGrekGjnZAvpe9ZST+sHzagCmqA4h6tJ9oEgG7ko9pwgTc2gy/sQ2m2H4+/DlmfQdr2plV8n+mrsXEDzGmLBp7GXpc6w7G6LiKN1mI+LkYyO20sEOc4OI9rMZEfiKPkhF7jJ2ZDTez19h01DpZ5O2LXKdN7sxO8dIOmseCWWCwnq5aV+l2cTBrlgdSQTsC44vpJyjlSfVDD2t4mAoMbG0fceAoTztLBzMT+ioxnXdgK5IYCE5qZfN67FYK9ioHcjzvQCFLK68Szdsd6UtUQE0H/dARJOUcWgU+j43JGzCIgWClk8X9xFIWxxMBk01mRqnvGTvzbuE1JN2pKIgMh/4WE8TxFFawV8vojrtuaApHLXyBuvQDSsgRGtNKctDgMicensbdyl2rhTXb2QwPCKUSD7+Z6V4LRhZV+lxDlz5PgrTJdR7dfZ45SrQNJqv11VIF2hUK5xsSvpwBIcfoBCkEAHG2G0h84vZVubRY1HVeIfrv9L5ONvCVUOWtHSRfp0u92D/gcwZl0e/rEQVwAAAABJRU5ErkJggg==";
var docsLink = "http://coherent-labs.com/Documentation/cpp/db/dbc/_java_script.html";
var createBrowserOverlay = function () {
var overlay = document.createElement("nav");
overlay.id = OVERLAY_ID;
overlay.classList.add("open");
var html = "<div class='contents'>" +
"<img src='" + logoDataUrl + "'></img>" +
"<h1>Mocker</h1>" +
"<hr>" +
"<p>" +
"Click the buttons below or hit "+
"<strong>ENTER</strong> to " +
"mock interaction with the engine. Type " +
"<code>engine.hideOverlay()</code> " +
"in the console to hide this overlay. See " +
"the " +
"<a target='_blank' href='" + docsLink + "'>" +
"docs</a> for details." +
"</p>" +
"<h2 class='left'>" +
"Call / trigger this <em>UI</em> " +
"function / event:" +
"</h2>" +
"<h2 class='right'>with arguments:</h2>" +
"<ul id='" + JS_CALLS_LIST_ID + "'></ul>" +
"<hr>" +
"<h2 class='left'>"+
"Call / trigger this <em>Engine</em> " +
"function / event:" +
"</h2>" +
"<h2 class='right'>with arguments:</h2>" +
"<ul id='" + CPP_CALLS_LIST_ID + "'></ul>" +
"</div>" +
"<div class='docked-contents'>" +
"<button id='coherent-dock-overlay-button'>" +
"Dock me!" +
"</button>" +
"</div>";
overlay.innerHTML = html;
var OverlayState = {
Open: 0,
Docked: 1,
Hidden: 2
};
overlay.state = OverlayState.Open;
overlay.querySelector("#coherent-dock-overlay-button")
.addEventListener("click", function () {
if (overlay.state == OverlayState.Open) {
overlay.state = OverlayState.Docked;
overlay.classList.remove("open");
overlay.classList.add("docked");
}
else if (overlay.state == OverlayState.Docked) {
overlay.state = OverlayState.Open;
overlay.classList.remove("docked");
overlay.classList.add("open");
}
});
return overlay;
};
var executeMock = function (name, isCppCall, isEvent, argsInput) {
var functionArgs = "'" + name + "'";
if (argsInput.value.length !== 0) {
functionArgs += ", " + argsInput.value;
}
var command = (isCppCall && !isEvent) ? "call" : "trigger";
try {
eval("engine." + command + "(" + functionArgs + ")");
}
catch (e) {
var text = "An error occured while executing mock function: ";
console.warn(text, e);
};
};
var LI_ID_PREFIX = "COHERENT_MOCKING_";
var addMockButton = function (name, args, isCppCall, isEvent) {
var id = LI_ID_PREFIX + name;
if (document.getElementById(id) !== null) {
// Button has already been created
return;
}
var li = document.createElement("li");
li.id = id;
var button = document.createElement("button");
button.textContent = name;
button.classList.add("left");
li.appendChild(button);
var argsInput = document.createElement("input");
argsInput.placeholder = args;
argsInput.classList.add("right");
argsInput.addEventListener("keyup", function (eventArgs) {
if (eventArgs.keyCode === 13) { // Enter
button.onclick();
}
}, false);
li.appendChild(argsInput);
button.onclick = executeMock.bind(undefined,
name,
isCppCall,
isEvent,
argsInput);
var parentId = isCppCall ? CPP_CALLS_LIST_ID : JS_CALLS_LIST_ID;
var parentSelector = "#" + OVERLAY_ID + " #" + parentId;
var menu = document.querySelector(parentSelector);
menu.appendChild(li);
};
var removeMockButton = function (name, isFunctionCall) {
var li = document.getElementById(LI_ID_PREFIX + name);
if (li && li.parentNode) {
li.parentNode.removeChild(li);
}
};
var systemEvents = [
"_coherentCreateImageData",
"_coherentUpdatedImageData",
'_Result',
'_Register',
'_Unregister',
'_OnReady',
'_OnError',
'replayEventsRecord'
]
engine.browserCallbackOn = function (name, callback) {
if (systemEvents.indexOf(name) === -1)
this._mockImpl(name, callback, false, true);
};
engine.browserCallbackOff = function (name) {
if (systemEvents.indexOf(name) === -1)
removeMockButton(name);
};
engine.browserCallbackMock = addMockButton;
var overlay = createBrowserOverlay();
document.body.appendChild(overlay);
engine.hideOverlay = function () {
overlay.classList.add("hidden");
overlay.classList.remove("shown");
};
engine.showOverlay = function () {
overlay.classList.add("shown");
overlay.classList.remove("hidden");
};
})(engine || {});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,172 @@
(function (c) { c(window.jQuery, window, document) })(function (c, q, x, y) {
c.widget("selectBox.selectBoxIt", {
VERSION: "3.8.1", options: {
showEffect: "none", showEffectOptions: {}, showEffectSpeed: "medium", hideEffect: "none", hideEffectOptions: {}, hideEffectSpeed: "medium", showFirstOption: !0, defaultText: "", defaultIcon: "", downArrowIcon: "", theme: "default", keydownOpen: !0, isMobile: function () { return /iPhone|iPod|iPad|Silk|Android|BlackBerry|Opera Mini|IEMobile/.test(navigator.userAgent || navigator.vendor || q.opera) }, "native": !1,
aggressiveChange: !1, selectWhenHidden: !0, viewport: c(q), similarSearch: !1, copyAttributes: ["title", "rel"], copyClasses: "button", nativeMousedown: !1, customShowHideEvent: !1, autoWidth: !0, html: !0, populate: "", dynamicPositioning: !0, hideCurrent: !1
}, getThemes: function () {
var a = c(this.element).attr("data-theme") || "c"; return {
bootstrap: { focus: "active", hover: "", enabled: "enabled", disabled: "disabled", arrow: "caret", button: "btn", list: "dropdown-menu", container: "bootstrap", open: "open" }, jqueryui: {
focus: "ui-state-focus", hover: "ui-state-hover",
enabled: "ui-state-enabled", disabled: "ui-state-disabled", arrow: "ui-icon ui-icon-triangle-1-s", button: "ui-widget ui-state-default", list: "ui-widget ui-widget-content", container: "jqueryui", open: "selectboxit-open"
}, jquerymobile: {
focus: "ui-btn-down-" + a, hover: "ui-btn-hover-" + a, enabled: "ui-enabled", disabled: "ui-disabled", arrow: "ui-icon ui-icon-arrow-d ui-icon-shadow", button: "ui-btn ui-btn-icon-right ui-btn-corner-all ui-shadow ui-btn-up-" + a, list: "ui-btn ui-btn-icon-right ui-btn-corner-all ui-shadow ui-btn-up-" +
a, container: "jquerymobile", open: "selectboxit-open"
}, "default": { focus: "selectboxit-focus", hover: "selectboxit-hover", enabled: "selectboxit-enabled", disabled: "selectboxit-disabled", arrow: "selectboxit-default-arrow", button: "selectboxit-btn", list: "selectboxit-list", container: "selectboxit-container", open: "selectboxit-open" }
}
}, isDeferred: function (a) { return c.isPlainObject(a) && a.promise && a.done }, _create: function (a) {
var b = this.options.populate, d = this.options.theme; if (this.element.is("select")) return this.widgetProto =
c.Widget.prototype, this.originalElem = this.element[0], this.selectBox = this.element, this.options.populate && this.add && !a && this.add(b), this.selectItems = this.element.find("option"), this.firstSelectItem = this.selectItems.slice(0, 1), this.documentHeight = c(x).height(), this.theme = c.isPlainObject(d) ? c.extend({}, this.getThemes()["default"], d) : this.getThemes()[d] ? this.getThemes()[d] : this.getThemes()["default"], this.currentFocus = 0, this.blur = !0, this.textArray = [], this.currentIndex = 0, this.currentText = "", this.flipped =
!1, a || (this.selectBoxStyles = this.selectBox.attr("style")), this._createDropdownButton()._createUnorderedList()._copyAttributes()._replaceSelectBox()._addClasses(this.theme)._eventHandlers(), this.originalElem.disabled && this.disable && this.disable(), this._ariaAccessibility && this._ariaAccessibility(), this.isMobile = this.options.isMobile(), this._mobile && this._mobile(), this.options["native"] && this._applyNativeSelect(), this.triggerEvent("create"), this
}, _createDropdownButton: function () {
var a = this.originalElemId =
this.originalElem.id || "", b = this.originalElemValue = this.originalElem.value || "", d = this.originalElemName = this.originalElem.name || "", f = this.options.copyClasses, h = this.selectBox.attr("class") || ""; this.dropdownText = c("<span/>", { id: a && a + "SelectBoxItText", "class": "selectboxit-text", unselectable: "on", text: this.firstSelectItem.text() }).attr("data-val", b); this.dropdownImageContainer = c("<span/>", { "class": "selectboxit-option-icon-container" }); this.dropdownImage = c("<i/>", {
id: a && a + "SelectBoxItDefaultIcon", "class": "selectboxit-default-icon",
unselectable: "on"
}); this.dropdown = c("<span/>", { id: a && a + "SelectBoxIt", "class": "selectboxit " + ("button" === f ? h : "") + " " + (this.selectBox.prop("disabled") ? this.theme.disabled : this.theme.enabled), name: d, tabindex: this.selectBox.attr("tabindex") || "0", unselectable: "on" }).append(this.dropdownImageContainer.append(this.dropdownImage)).append(this.dropdownText); this.dropdownContainer = c("<span/>", { id: a && a + "SelectBoxItContainer", "class": "selectboxit-container " + this.theme.container + " " + ("container" === f ? h : "") }).append(this.dropdown);
return this
}, _createUnorderedList: function () {
var a = this, b, d, f, h, g, e, l, k = "", p = a.originalElemId || "", p = c("<ul/>", { id: p && p + "SelectBoxItOptions", "class": "selectboxit-options", tabindex: -1 }), v, w, u, r, m, t; a.options.showFirstOption || (a.selectItems.first().attr("disabled", "disabled"), a.selectItems = a.selectBox.find("option").slice(1)); a.selectItems.each(function (p) {
m = c(this); f = d = ""; b = m.prop("disabled"); h = m.attr("data-icon") || ""; e = (g = m.attr("data-iconurl") || "") ? "selectboxit-option-icon-url" : ""; l = g ? "style=\"background-image:url('" +
g + "');\"" : ""; v = m.attr("data-selectedtext"); r = (w = m.attr("data-text")) ? w : m.text(); t = m.parent(); t.is("optgroup") && (d = "selectboxit-optgroup-option", 0 === m.index() && (f = '<span class="selectboxit-optgroup-header ' + t.first().attr("class") + '"data-disabled="true">' + t.first().attr("label") + "</span>")); m.attr("value", this.value); k += f + '<li data-id="' + p + '" data-val="' + this.value + '" data-disabled="' + b + '" class="' + d + " selectboxit-option " + (c(this).attr("class") || "") + '"><a class="selectboxit-option-anchor"><span class="selectboxit-option-icon-container"><i class="selectboxit-option-icon ' +
h + " " + (e || a.theme.container) + '"' + l + "></i></span>" + (a.options.html ? r : a.htmlEscape(r)) + "</a></li>"; u = m.attr("data-search"); a.textArray[p] = b ? "" : u ? u : r; this.selected && (a._setText(a.dropdownText, v || r), a.currentFocus = p)
}); if (a.options.defaultText || a.selectBox.attr("data-text")) { var q = a.options.defaultText || a.selectBox.attr("data-text"); a._setText(a.dropdownText, q); a.options.defaultText = q } p.append(k); a.list = p; a.dropdownContainer.append(a.list); a.listItems = a.list.children("li"); a.listAnchors = a.list.find("a");
a.listItems.first().addClass("selectboxit-option-first"); a.listItems.last().addClass("selectboxit-option-last"); a.list.find("li[data-disabled='true']").not(".optgroupHeader").addClass(a.theme.disabled); a.dropdownImage.addClass(a.selectBox.attr("data-icon") || a.options.defaultIcon || a.listItems.eq(a.currentFocus).find("i").attr("class")); a.dropdownImage.attr("style", a.listItems.eq(a.currentFocus).find("i").attr("style")); return a
}, _replaceSelectBox: function () {
var a = this.originalElem.id || "", b = this.selectBox.attr("data-size"),
b = this.listSize = b === y ? "auto" : "0" === b ? "auto" : +b, d; this.selectBox.css("display", "none").after(this.dropdownContainer); this.dropdownContainer.appendTo("body").addClass("selectboxit-rendering"); this.dropdown.height(); this.downArrow = c("<i/>", { id: a && a + "SelectBoxItArrow", "class": "selectboxit-arrow", unselectable: "on" }); this.downArrowContainer = c("<span/>", { id: a && a + "SelectBoxItArrowContainer", "class": "selectboxit-arrow-container", unselectable: "on" }).append(this.downArrow); this.dropdown.append(this.downArrowContainer);
this.listItems.removeClass("selectboxit-selected").eq(this.currentFocus).addClass("selectboxit-selected"); a = this.downArrowContainer.outerWidth(!0); d = this.dropdownImage.outerWidth(!0); this.options.autoWidth && (this.dropdown.css({ width: "auto" }).css({ width: this.list.outerWidth(!0) + a + d }), this.list.css({ "min-width": this.dropdown.width() })); this.dropdownText.css({ "max-width": this.dropdownContainer.outerWidth(!0) - (a + d) }); this.selectBox.after(this.dropdownContainer); this.dropdownContainer.removeClass("selectboxit-rendering");
"number" === c.type(b) && (this.maxHeight = this.listAnchors.outerHeight(!0) * b); return this
}, _scrollToView: function (a) { var b = this.listItems.eq(this.currentFocus), d = this.list.scrollTop(), f = b.height(), b = b.position().top, c = Math.abs(b), g = this.list.height(); "search" === a ? g - b < f ? this.list.scrollTop(d + (b - (g - f))) : -1 > b && this.list.scrollTop(b - f) : "up" === a ? -1 > b && this.list.scrollTop(d - c) : "down" === a && g - b < f && this.list.scrollTop(d + (c - g + f)); return this }, _callbackSupport: function (a) {
c.isFunction(a) && a.call(this, this.dropdown);
return this
}, _setText: function (a, b) { this.options.html ? a.html(b) : a.text(b); return this }, open: function (a) {
var b = this, d = b.options.showEffect, c = b.options.showEffectSpeed, h = b.options.showEffectOptions, g = b.options["native"], e = b.isMobile; if (!b.listItems.length || b.dropdown.hasClass(b.theme.disabled)) return b; if (!g && !e && !this.list.is(":visible")) {
b.triggerEvent("open"); b._dynamicPositioning && b.options.dynamicPositioning && b._dynamicPositioning(); if ("none" === d) b.list.show(); else if ("show" === d || "slideDown" ===
d || "fadeIn" === d) b.list[d](c); else b.list.show(d, h, c); b.list.promise().done(function () { b._scrollToView("search"); b.triggerEvent("opened") })
} b._callbackSupport(a); return b
}, close: function (a) {
var b = this, d = b.options.hideEffect, c = b.options.hideEffectSpeed, h = b.options.hideEffectOptions, g = b.isMobile; if (!b.options["native"] && !g && b.list.is(":visible")) { b.triggerEvent("close"); if ("none" === d) b.list.hide(); else if ("hide" === d || "slideUp" === d || "fadeOut" === d) b.list[d](c); else b.list.hide(d, h, c); b.list.promise().done(function () { b.triggerEvent("closed") }) } b._callbackSupport(a);
return b
}, toggle: function () { var a = this.list.is(":visible"); a ? this.close() : a || this.open() }, _keyMappings: { 38: "up", 40: "down", 13: "enter", 8: "backspace", 9: "tab", 32: "space", 27: "esc" }, _keydownMethods: function () {
var a = this, b = a.list.is(":visible") || !a.options.keydownOpen; return {
down: function () { a.moveDown && b && a.moveDown() }, up: function () { a.moveUp && b && a.moveUp() }, enter: function () { var b = a.listItems.eq(a.currentFocus); a._update(b); "true" !== b.attr("data-preventclose") && a.close(); a.triggerEvent("enter") }, tab: function () {
a.triggerEvent("tab-blur");
a.close()
}, backspace: function () { a.triggerEvent("backspace") }, esc: function () { a.close() }
}
}, _eventHandlers: function () {
var a = this, b = a.options.nativeMousedown, d = a.options.customShowHideEvent, f, h, g = a.focusClass, e = a.hoverClass, l = a.openClass; this.dropdown.on({
"click.selectBoxIt": function () { a.dropdown.trigger("focus", !0); a.originalElem.disabled || (a.triggerEvent("click"), b || d || a.toggle()) }, "mousedown.selectBoxIt": function () { c(this).data("mdown", !0); a.triggerEvent("mousedown"); b && !d && a.toggle() }, "mouseup.selectBoxIt": function () { a.triggerEvent("mouseup") },
"blur.selectBoxIt": function () { a.blur && (a.triggerEvent("blur"), a.close(), c(this).removeClass(g)) }, "focus.selectBoxIt": function (b, d) { var f = c(this).data("mdown"); c(this).removeData("mdown"); f || d || setTimeout(function () { a.triggerEvent("tab-focus") }, 0); d || (c(this).hasClass(a.theme.disabled) || c(this).addClass(g), a.triggerEvent("focus")) }, "keydown.selectBoxIt": function (b) {
var d = a._keyMappings[b.keyCode], c = a._keydownMethods()[d]; c && (c(), !a.options.keydownOpen || "up" !== d && "down" !== d || a.open()); c && "tab" !== d &&
b.preventDefault()
}, "keypress.selectBoxIt": function (b) { var d = a._keyMappings[b.charCode || b.keyCode], c = String.fromCharCode(b.charCode || b.keyCode); a.search && (!d || d && "space" === d) && a.search(c, !0, !0); "space" === d && b.preventDefault() }, "mouseenter.selectBoxIt": function () { a.triggerEvent("mouseenter") }, "mouseleave.selectBoxIt": function () { a.triggerEvent("mouseleave") }
}); a.list.on({
"mouseover.selectBoxIt": function () { a.blur = !1 }, "mouseout.selectBoxIt": function () { a.blur = !0 }, "focusin.selectBoxIt": function () {
a.dropdown.trigger("focus",
!0)
}
}); a.list.on({
"mousedown.selectBoxIt": function () { a._update(c(this)); a.triggerEvent("option-click"); "false" === c(this).attr("data-disabled") && "true" !== c(this).attr("data-preventclose") && a.close(); setTimeout(function () { a.dropdown.trigger("focus", !0) }, 0) }, "focusin.selectBoxIt": function () {
a.listItems.not(c(this)).removeAttr("data-active"); c(this).attr("data-active", ""); var b = a.list.is(":hidden"); (a.options.searchWhenHidden && b || a.options.aggressiveChange || b && a.options.selectWhenHidden) && a._update(c(this));
c(this).addClass(g)
}, "mouseup.selectBoxIt": function () { b && !d && (a._update(c(this)), a.triggerEvent("option-mouseup"), "false" === c(this).attr("data-disabled") && "true" !== c(this).attr("data-preventclose") && a.close()) }, "mouseenter.selectBoxIt": function () { "false" === c(this).attr("data-disabled") && (a.listItems.removeAttr("data-active"), c(this).addClass(g).attr("data-active", ""), a.listItems.not(c(this)).removeClass(g), c(this).addClass(g), a.currentFocus = +c(this).attr("data-id")) }, "mouseleave.selectBoxIt": function () {
"false" ===
c(this).attr("data-disabled") && (a.listItems.not(c(this)).removeClass(g).removeAttr("data-active"), c(this).addClass(g), a.currentFocus = +c(this).attr("data-id"))
}, "blur.selectBoxIt": function () { c(this).removeClass(g) }
}, ".selectboxit-option"); a.list.on({ "click.selectBoxIt": function (a) { a.preventDefault() } }, "a"); a.selectBox.on({
"change.selectBoxIt, internal-change.selectBoxIt": function (b, d) {
var c, g; d || (c = a.list.find('li[data-val="' + a.originalElem.value + '"]'), c.length && (a.listItems.eq(a.currentFocus).removeClass(a.focusClass),
a.currentFocus = +c.attr("data-id"))); c = a.listItems.eq(a.currentFocus); g = c.attr("data-selectedtext"); h = (f = c.attr("data-text")) ? f : c.find("a").text(); a._setText(a.dropdownText, g || h); a.dropdownText.attr("data-val", a.originalElem.value); c.find("i").attr("class") && (a.dropdownImage.attr("class", c.find("i").attr("class")).addClass("selectboxit-default-icon"), a.dropdownImage.attr("style", c.find("i").attr("style"))); a.triggerEvent("changed")
}, "disable.selectBoxIt": function () { a.dropdown.addClass(a.theme.disabled) },
"enable.selectBoxIt": function () { a.dropdown.removeClass(a.theme.disabled) }, "open.selectBoxIt": function () {
var b = a.list.find("li[data-val='" + a.dropdownText.attr("data-val") + "']"); b.length || (b = a.listItems.not("[data-disabled=true]").first()); a.currentFocus = +b.attr("data-id"); b = a.listItems.eq(a.currentFocus); a.dropdown.addClass(l).removeClass(e).addClass(g); a.listItems.removeClass(a.selectedClass).removeAttr("data-active").not(b).removeClass(g); b.addClass(a.selectedClass).addClass(g); a.options.hideCurrent &&
(a.listItems.show(), b.hide())
}, "close.selectBoxIt": function () { a.dropdown.removeClass(l) }, "blur.selectBoxIt": function () { a.dropdown.removeClass(g) }, "mouseenter.selectBoxIt": function () { c(this).hasClass(a.theme.disabled) || a.dropdown.addClass(e) }, "mouseleave.selectBoxIt": function () { a.dropdown.removeClass(e) }, destroy: function (a) { a.preventDefault(); a.stopPropagation() }
}); return a
}, _update: function (a) {
var b, d = this.options.defaultText || this.selectBox.attr("data-text"), c = this.listItems.eq(this.currentFocus);
"false" === a.attr("data-disabled") && (this.listItems.eq(this.currentFocus).attr("data-selectedtext"), (b = c.attr("data-text")) || c.text(), (d && this.options.html ? this.dropdownText.html() === d : this.dropdownText.text() === d) && this.selectBox.val() === a.attr("data-val") ? this.triggerEvent("change") : (this.selectBox.val(a.attr("data-val")), this.currentFocus = +a.attr("data-id"), this.originalElem.value !== this.dropdownText.attr("data-val") && this.triggerEvent("change")))
}, _addClasses: function (a) {
this.focusClass = a.focus;
this.hoverClass = a.hover; var b = a.button, d = a.list, c = a.arrow, h = a.container; this.openClass = a.open; this.selectedClass = "selectboxit-selected"; this.downArrow.addClass(this.selectBox.attr("data-downarrow") || this.options.downArrowIcon || c); this.dropdownContainer.addClass(h); this.dropdown.addClass(b); this.list.addClass(d); return this
}, refresh: function (a, b) { this._destroySelectBoxIt()._create(!0); b || this.triggerEvent("refresh"); this._callbackSupport(a); return this }, htmlEscape: function (a) {
return String(a).replace(/&/g,
"&amp;").replace(/"/g, "&quot;").replace(/'/g, "&#39;").replace(/</g, "&lt;").replace(/>/g, "&gt;")
}, triggerEvent: function (a) { this.selectBox.trigger(a, { selectbox: this.selectBox, selectboxOption: this.selectItems.eq(this.options.showFirstOption ? this.currentFocus : 0 <= this.currentFocus - 1 ? this.currentFocus : 0), dropdown: this.dropdown, dropdownOption: this.listItems.eq(this.currentFocus) }); return this }, _copyAttributes: function () { this._addSelectBoxAttributes && this._addSelectBoxAttributes(); return this }, _realOuterWidth: function (a) {
if (a.is(":visible")) return a.outerWidth(!0);
a = a.clone(); var b; a.css({ visibility: "hidden", display: "block", position: "absolute" }).appendTo("body"); b = a.outerWidth(!0); a.remove(); return b
}
}); var e = c.selectBox.selectBoxIt.prototype; e._ariaAccessibility = function () {
var a = this, b = c("label[for='" + a.originalElem.id + "']"); a.dropdownContainer.attr({ role: "combobox", "aria-autocomplete": "list", "aria-haspopup": "true", "aria-expanded": "false", "aria-owns": a.list[0].id }); a.dropdownText.attr({ "aria-live": "polite" }); a.dropdown.on({
"disable.selectBoxIt": function () {
a.dropdownContainer.attr("aria-disabled",
"true")
}, "enable.selectBoxIt": function () { a.dropdownContainer.attr("aria-disabled", "false") }
}); b.length && a.dropdownContainer.attr("aria-labelledby", b[0].id); a.list.attr({ role: "listbox", "aria-hidden": "true" }); a.listItems.attr({ role: "option" }); a.selectBox.on({ "open.selectBoxIt": function () { a.list.attr("aria-hidden", "false"); a.dropdownContainer.attr("aria-expanded", "true") }, "close.selectBoxIt": function () { a.list.attr("aria-hidden", "true"); a.dropdownContainer.attr("aria-expanded", "false") } }); return a
}; e._addSelectBoxAttributes =
function () { var a = this; a._addAttributes(a.selectBox.prop("attributes"), a.dropdown); a.selectItems.each(function (b) { a._addAttributes(c(this).prop("attributes"), a.listItems.eq(b)) }); return a }; e._addAttributes = function (a, b) { var d = this.options.copyAttributes; a.length && c.each(a, function (a, h) { var g = h.name.toLowerCase(), e = h.value; "null" === e || -1 === c.inArray(g, d) && -1 === g.indexOf("data") || b.attr(g, e) }); return this }; e.destroy = function (a) {
this._destroySelectBoxIt(); this.widgetProto.destroy.call(this); this._callbackSupport(a);
return this
}; e._destroySelectBoxIt = function () { this.dropdown.off(".selectBoxIt"); c.contains(this.dropdownContainer[0], this.originalElem) && this.dropdownContainer.before(this.selectBox); this.dropdownContainer.remove(); this.selectBox.removeAttr("style").attr("style", this.selectBoxStyles); this.triggerEvent("destroy"); return this }; e.disable = function (a) {
this.options.disabled || (this.close(), this.selectBox.attr("disabled", "disabled"), this.dropdown.removeAttr("tabindex").removeClass(this.theme.enabled).addClass(this.theme.disabled),
this.setOption("disabled", !0), this.triggerEvent("disable")); this._callbackSupport(a); return this
}; e.disableOption = function (a, b) {
var d, f; "number" === c.type(a) && (this.close(), d = this.selectBox.find("option").eq(a), this.triggerEvent("disable-option"), d.attr("disabled", "disabled"), this.listItems.eq(a).attr("data-disabled", "true").addClass(this.theme.disabled), this.currentFocus === a && (d = this.listItems.eq(this.currentFocus).nextAll("li").not("[data-disabled='true']").first().length, f = this.listItems.eq(this.currentFocus).prevAll("li").not("[data-disabled='true']").first().length,
d ? this.moveDown() : f ? this.moveUp() : this.disable())); this._callbackSupport(b); return this
}; e._isDisabled = function (a) { this.originalElem.disabled && this.disable(); return this }; e._dynamicPositioning = function () {
if ("number" === c.type(this.listSize)) this.list.css("max-height", this.maxHeight || "none"); else {
var a = this.dropdown.offset().top, b = this.list.data("max-height") || this.list.outerHeight(), d = this.dropdown.outerHeight(), f = this.options.viewport, h = f.height(), f = c.isWindow(f.get(0)) ? f.scrollTop() : f.offset().top,
g = !(a + d + b <= h + f); this.list.data("max-height") || this.list.data("max-height", this.list.outerHeight()); g ? this.dropdown.offset().top - f >= b ? (this.list.css("max-height", b), this.list.css("top", this.dropdown.position().top - this.list.outerHeight())) : (a = Math.abs(a + d + b - (h + f)), h = Math.abs(this.dropdown.offset().top - f - b), a < h ? (this.list.css("max-height", b - a - d / 2), this.list.css("top", "auto")) : (this.list.css("max-height", b - h - d / 2), this.list.css("top", this.dropdown.position().top - this.list.outerHeight()))) : (this.list.css("max-height",
b), this.list.css("top", "auto"))
} return this
}; e.enable = function (a) { this.options.disabled && (this.triggerEvent("enable"), this.selectBox.removeAttr("disabled"), this.dropdown.attr("tabindex", 0).removeClass(this.theme.disabled).addClass(this.theme.enabled), this.setOption("disabled", !1), this._callbackSupport(a)); return this }; e.enableOption = function (a, b) {
var d; "number" === c.type(a) && (d = this.selectBox.find("option").eq(a), this.triggerEvent("enable-option"), d.removeAttr("disabled"), this.listItems.eq(a).attr("data-disabled",
"false").removeClass(this.theme.disabled)); this._callbackSupport(b); return this
}; e.moveDown = function (a) {
this.currentFocus += 1; var b = "true" === this.listItems.eq(this.currentFocus).attr("data-disabled") ? !0 : !1, d = this.listItems.eq(this.currentFocus).nextAll("li").not("[data-disabled='true']").first().length; if (this.currentFocus === this.listItems.length)--this.currentFocus; else {
if (b && d) { this.listItems.eq(this.currentFocus - 1).blur(); this.moveDown(); return } b && !d ? --this.currentFocus : (this.listItems.eq(this.currentFocus -
1).blur().end().eq(this.currentFocus).focusin(), this._scrollToView("down"), this.triggerEvent("moveDown"))
} this._callbackSupport(a); return this
}; e.moveUp = function (a) {
--this.currentFocus; var b = "true" === this.listItems.eq(this.currentFocus).attr("data-disabled") ? !0 : !1, d = this.listItems.eq(this.currentFocus).prevAll("li").not("[data-disabled='true']").first().length; if (-1 === this.currentFocus) this.currentFocus += 1; else {
if (b && d) { this.listItems.eq(this.currentFocus + 1).blur(); this.moveUp(); return } b && !d ? this.currentFocus +=
1 : (this.listItems.eq(this.currentFocus + 1).blur().end().eq(this.currentFocus).focusin(), this._scrollToView("up"), this.triggerEvent("moveUp"))
} this._callbackSupport(a); return this
}; e._setCurrentSearchOption = function (a) {
(this.options.aggressiveChange || this.options.selectWhenHidden || this.listItems.eq(a).is(":visible")) && !0 !== this.listItems.eq(a).data("disabled") && (this.listItems.eq(this.currentFocus).blur(), this.currentFocus = this.currentIndex = a, this.listItems.eq(this.currentFocus).focusin(), this._scrollToView("search"),
this.triggerEvent("search")); return this
}; e._searchAlgorithm = function (a, b) {
var d = !1, c, h, g, e, l = this.textArray, k = this.currentText; c = a; for (g = l.length; c < g; c += 1) {
e = l[c]; for (h = 0; h < g; h += 1) -1 !== l[h].search(b) && (d = !0, h = g); d || (k = this.currentText = this.currentText.charAt(this.currentText.length - 1).replace(/[|()\[{.+*?$\\]/g, "\\$0")); b = new RegExp(k, "gi"); if (3 > k.length) {
if (b = new RegExp(k.charAt(0), "gi"), -1 !== e.charAt(0).search(b)) {
this._setCurrentSearchOption(c); if (e.substring(0, k.length).toLowerCase() !== k.toLowerCase() ||
this.options.similarSearch) this.currentIndex += 1; return !1
}
} else if (-1 !== e.search(b)) return this._setCurrentSearchOption(c), !1; if (e.toLowerCase() === this.currentText.toLowerCase()) return this._setCurrentSearchOption(c), this.currentText = "", !1
} return !0
}; e.search = function (a, b, d) {
this.currentText = d ? this.currentText + a.replace(/[|()\[{.+*?$\\]/g, "\\$0") : a.replace(/[|()\[{.+*?$\\]/g, "\\$0"); this._searchAlgorithm(this.currentIndex, new RegExp(this.currentText, "gi")) && this._searchAlgorithm(0, this.currentText);
this._callbackSupport(b); return this
}; e._updateMobileText = function () { var a, b; a = this.selectBox.find("option").filter(":selected"); b = (b = a.attr("data-text")) ? b : a.text(); this._setText(this.dropdownText, b); this.list.find('li[data-val="' + a.val() + '"]').find("i").attr("class") && this.dropdownImage.attr("class", this.list.find('li[data-val="' + a.val() + '"]').find("i").attr("class")).addClass("selectboxit-default-icon") }; e._applyNativeSelect = function () {
this.dropdownContainer.append(this.selectBox); this.dropdown.attr("tabindex",
"-1"); this.selectBox.css({ display: "block", visibility: "visible", width: this._realOuterWidth(this.dropdown), height: this.dropdown.outerHeight(), opacity: "0", position: "absolute", top: "0", left: "0", cursor: "pointer", "z-index": "999999", margin: this.dropdown.css("margin"), padding: "0", "-webkit-appearance": "menulist-button" }); this.originalElem.disabled && this.triggerEvent("disable"); return this
}; e._mobileEvents = function () {
var a = this; a.selectBox.on({
"changed.selectBoxIt": function () {
a.hasChanged = !0; a._updateMobileText();
a.triggerEvent("option-click")
}, "mousedown.selectBoxIt": function () { a.hasChanged || !a.options.defaultText || a.originalElem.disabled || (a._updateMobileText(), a.triggerEvent("option-click")) }, "enable.selectBoxIt": function () { a.selectBox.removeClass("selectboxit-rendering") }, "disable.selectBoxIt": function () { a.selectBox.addClass("selectboxit-rendering") }
})
}; e._mobile = function (a) { this.isMobile && (this._applyNativeSelect(), this._mobileEvents()); return this }; e.selectOption = function (a, b) {
var d = c.type(a); "number" ===
d ? this.selectBox.val(this.selectItems.eq(a).val()).change() : "string" === d && this.selectBox.val(a).change(); this._callbackSupport(b); return this
}; e.setOption = function (a, b, d) { var f = this; "string" === c.type(a) && (f.options[a] = b); f.refresh(function () { f._callbackSupport(d) }, !0); return f }; e.setOptions = function (a, b) { var d = this; c.isPlainObject(a) && (d.options = c.extend({}, d.options, a)); d.refresh(function () { d._callbackSupport(b) }, !0); return d }; e.wait = function (a, b) { this.widgetProto._delay.call(this, b, a); return this };
e.add = function (a, b) {
this._populate(a, function (a) {
var f = this, e = c.type(a), g = 0, n, l = [], k = (n = f._isJSON(a)) && f._parseJSON(a); if (a && ("array" === e || n && k.data && "array" === c.type(k.data)) || "object" === e && a.data && "array" === c.type(a.data)) { f._isJSON(a) && (a = k); a.data && (a = a.data); for (n = a.length; g <= n - 1; g += 1) e = a[g], c.isPlainObject(e) ? l.push(c("<option/>", e)) : "string" === c.type(e) && l.push(c("<option/>", { text: e, value: e })); f.selectBox.append(l) } else a && "string" === e && !f._isJSON(a) ? f.selectBox.append(a) : a && "object" === e ? f.selectBox.append(c("<option/>",
a)) : a && f._isJSON(a) && c.isPlainObject(f._parseJSON(a)) && f.selectBox.append(c("<option/>", f._parseJSON(a))); f.dropdown ? f.refresh(function () { f._callbackSupport(b) }, !0) : f._callbackSupport(b); return f
})
}; e._parseJSON = function (a) { return JSON && JSON.parse && JSON.parse(a) || c.parseJSON(a) }; e._isJSON = function (a) { try { return this._parseJSON(a), !0 } catch (b) { return !1 } }; e._populate = function (a, b) { var d = this; a = c.isFunction(a) ? a.call() : a; d.isDeferred(a) ? a.done(function (a) { b.call(d, a) }) : b.call(d, a); return d }; e.remove =
function (a, b) { var d = this, f = c.type(a), e = 0, g, n = ""; if ("array" === f) { for (g = a.length; e <= g - 1; e += 1) f = a[e], "number" === c.type(f) && (n = n.length ? n + (", option:eq(" + f + ")") : n + ("option:eq(" + f + ")")); d.selectBox.find(n).remove() } else "number" === f ? d.selectBox.find("option").eq(a).remove() : d.selectBox.find("option").remove(); d.dropdown ? d.refresh(function () { d._callbackSupport(b) }, !0) : d._callbackSupport(b); return d }
});

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,142 @@
// Entry 에 대한 mock API.
// 브라우저에서 테스트를 위해서 사용한다.
// 세번째 인자로 true가 들어가면 function call이라는 의미고, 아니면 trigger이다.
engine.mock('GetLobbyUrl', function () {
return "http://localhost:23847";
}, true);
engine.mock('GetClientAuthData', function () {
return {
platformType:"None",
userSerial:"UserId",
accessToken:"abcde",
playerNetId:"UserId_abcde",
};
}, true);
engine.mock('GetDisplayResoultions', function () {
return [
{ X: 1024, Y: 768 },
{ X: 1280, Y: 1024},
{ X: 1920, Y: 1024 },
];
}, true);
engine.mock('GetCurrentOptions', function () {
return {
resolution: '1280x1024',
//resolution: '1280x124',
quality: 'Low',
fullscreen: 'true',
gamma: '20',
aim: '20',
invertY:'false',
};
}, true);
engine.mock('GetMapNames', function () {
return ['Sanctuary', 'Highrise'];
}, true);
engine.mock('GetJoinMapNames', function () {
return ['Any', 'Sanctuary', 'Highrise'];
}, true);
engine.mock('GetSearchServerResult', function () {
return {
bFinish: true,
statusText: "Status message",
entryList: [
{
serverName: 'Server1',
currentPlayers: 5,
maxPlayers: 12,
gameType: 'FFA',
mapName: 'TestMap',
ping: 201,
searchResultsIndex: 0,
},
{
serverName: 'Server2',
currentPlayers: 15,
maxPlayers: 22,
gameType: 'FFA',
mapName: 'TestMap2',
ping: 101,
searchResultsIndex: 1,
},
],
};
}, true);
///////////////////////////////////////////////////////////////////////////////
// WebSocket wrapping 함수 이벤트 들.
engine.mock('Ws_NewWebsocket', function (name, url, cookie) {
window.setTimeout(function () {
engine.trigger('Ws_OnConnected', 1);
}, 1000);
windows.setTimeout(function () {
engine.trigger('Ws_OnReceived', 1, 'null-json-data');
engine.trigger('Ws_OnError', 1, 'unknown');
engine.trigger('Ws_OnDisconnected', 1);
}, 2000);
return 1; // return new WebSocket Id. (0 means failed to create)
}, true)
engine.mock('Ws_GetWebsocket', function (name) {
return 0; // return connected WebSocket Id, if 0, fail to find.
}, true)
engine.mock('Ws_Send', function (socketId, data) {
console.log("call Ws_Send");
})
engine.mock('Ws_Close', function (socketId) {
console.log("call Ws_Close");
})
//engine.mock('Ws_OnDisconnect', function (socketId) { })
//engine.mock('Ws_OnError', function (socketId, error) { })
//engine.mock('Ws_OnReceived', function (socketId, data) { })
///////////////////////////////////////////////////////////////////////////////
// 여기서 부터 이벤트.
engine.mock('Quit', function () {
console.log('engine received Quit!!!!');
});
engine.mock('UpdateOptions', function (options) {
console.log('engine received options');
console.log(options);
});
engine.mock('StartHost', function (options) {
console.log('engine received StartHost');
console.log(options);
});
engine.mock('StartSearchJoin', function (options) {
console.log('engine received StartSearchJoin');
console.log(options);
window.setTimeout(function () { engine.trigger('BeginServerSearch'); }, 1000);
});
engine.mock('JoinToServer', function (serverIndex) {
console.log('engine received JoinToServer');
console.log(serverIndex);
});
engine.mock('JoinToDedicatedServer', function (serverAddress) {
console.log('engine received JoinToDedicatedServer:' + serverAddress);
});
engine.mock('InputFocusChange', function (isFocusIn) {
console.log('engine received InputFocusChange:' + isFocusIn);
});
engine.mock('ReadFriendList', function (contextId) {
engine.trigger('ReadFriendListResult', contextId, 'not supproted');
});

File diff suppressed because one or more lines are too long

11932
custom_lobby/static/js/vue.js Normal file

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 679 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 551 KiB

View file

@ -0,0 +1,430 @@
LitePC\StringTable\ST_Item_Skin_ItemNames.uexp:13:É▓Q♂ò¬gÏ×ñï9_#S ►
ItemName_293002 §   M 2 4 ┘r¹Q¬gÏ×ñï9_#S ►
ItemName_293003 §   A W M ┘r¹Q¬gÏ×ñï9_#S ►
ItemName_293004 §   S K S ┘r¹Q¬gÏ×ñï9_#S ►
ItemName_293005 §   V S S ┘r¹Q¬gÏ×ñï9_#S ►
ItemName_293006 ‗   M i n i 1 4 ┘r¹Q¬gÏ×ñï9_#S ►
ItemName_293007 ¶   M k 1 4 ┘r¹Q¬gÏ×ñï9_#S ►
ItemName_293009 §   S L R ┘r¹Q¬gÏ×ñï9_#S ►
ItemName_293010 ¶   Q B U ♦\Kbek¬gÏ×ñï9_#S ►
ItemName_294003 ¶   S 1 2 K 0ù9_¬gÏ×ñï9_#S ►
ItemName_295001 ¶   M 2 4 9 {Å:g¬gÏ×ñï9_#S ►
ItemName_295002 ¾   D P - 2 8 {Å:g¬gÏ×ñï9_#S ►
ItemName_296001 ÷   P 9 2 Kb¬gÏ×ñï9_#S ►
ItemName_296002 ¶   P 1 9 1 1 Kb¬gÏ×ñï9_#S ►
ItemName_296004 §   P 1 8 C Kb¬gÏ×ñï9_#S ►
ItemName_301001 ♦ 9mm ►
ItemName_302001 7.62mm ►
ItemName_303001 5.56mm ►
ItemName_304001 12 Gauge ►
ItemName_305001 .45 ACP ►
ItemName_306001 ♀ .300 Magnum ►
ItemName_307001 ♫ Crossbow Bolt ►
ItemName_308001 ♠ Flare ►
ItemName_308002 ♠ Flare ►
ItemName_400997 ◄ Head 03 (unisex) ►
ItemName_400998 ◄ Head 02 (unisex) ►
ItemName_400999 ◄ Head 01 (unisex) ►
ItemName_40 Baseball Cap ►
ItemName_401004 ↔ Vintage Baseball Cap (Black) ►
ItemName_401005 ↔ Vintage Baseball Cap (White) ►
ItemName_401006 Beanie ►
ItemName_401007 ♦ Cap ►
ItemName_401008 ♂ Patrol Cap ►
ItemName_401009 Camo Cap ►
ItemName_401010 ↓ Battleground Beret (Red) ►
ItemName_401011 ← Battleground Beret (Black) ►
ItemName_401012 §   :R└o↑b:W↔ì¸û= ó~  
ItemName_401013 §   :R└o↑b:W↔ì¸û= Ð×  
ItemName_401014 § Baseball Cap (Black) ►
ItemName_401015 ► L&Q Sheriff Hat ►
ItemName_401016 Fedora ►
ItemName_401017 ↕ City Defender Cap ►
ItemName_401018 ← Urban Defender Leather Cap ►
ItemName_401019 ♀ Blue DJ Cap ► ItemName_401020 ♂ Red DJ Cap ►
ItemName_401021 ← Desert Troops Baseball Cap ►
ItemName_401022 ¶ Season 2 Patrol Cap ►
ItemName_401023 ♂ Bomber Hat ►
ItemName_401024 ↑ Fisherman's Hat (Black) ►
ItemName_401025 ↨ Fisherman's Hat (Teal) ►
ItemName_401026 ↨ Military Beret (Brown) ►
ItemName_401027 ▬ Military Beret (Blue) ►
ItemName_401028 ► Gentleman's Hat ►
ItemName_401029 § Children's Hat (Red) ►
ItemName_401030 ↨ Children's Hat (Black) ►
ItemName_401031 ▬ Pirate Bandana (Blue) ►
ItemName_401032 ↑ Pirate Bandana (Yellow) ►
ItemName_401033 ← Pirate Bandana (Checkered) ►
ItemName_401034 § Pirate Bandana (Red) ►
ItemName_401035 ▬ Wild West Hat (White) ► // works in 0.7.0.1
ItemName_401036 ▬ Wild West Hat (Brown) ►
ItemName_401037 ♫ SN Combat Cap ►
ItemName_401038 ▬ Wild West Leather Hat ►
ItemName_401039 " Retro Baseball Cap (Black-Purple) ►
ItemName_401040 ▼ Retro Baseball Cap (Black-Red) ►
ItemName_401041 ↓ Retro Baseball Cap (Red) ►
ItemName_401042 Retro Baseball Cap (Tidal Wave) ►
ItemName_401043 ▬ Black Rose Peaked Cap ►
ItemName_401044 ▬ White Rose Peaked Cap ►
ItemName_401045 ∟ High Society Hat (Burgundy) ►
ItemName_401046 $ Retro Baseball Cap (Children's Day) ►
ItemName_401047 ·   S x ↑bùe=^ ►
ItemName_401048 ▬ Bowler Hat (Burgundy) ►
ItemName_401049 ‼ Bowler Hat (Black) ►
ItemName_401050 ↓ Bowler Hat (Black-White) ►
ItemName_401051 ↨ Bowler Hat (Black-Red) ►
ItemName_401052 ♂ Panama Hat ►
ItemName_401053 ← Retro Baseball Cap (Black) ►
ItemName_401054 ∟ Retro Baseball Cap (Yellow) ►
ItemName_401055 → Retro Baseball Cap (Pink) ►
ItemName_401056 → Retro Baseball Cap (Camo) ►
ItemName_401057 ↓ Ocean's Call Hat (White) ►
ItemName_401058 ☼ Urban Punk Cap ►
ItemName_401059 ↓ Inferno Earmuffs (White) ►
ItemName_401060 ↨ Inferno Earmuffs (Red) ►
ItemName_401061 ¶ Beanie & Headphones ► // works in 0.7.0.1
ItemName_401062 → Refreshing Summer Goggles ►
ItemName_401991 §   w a r m o d e ‼N(u4Y ► // works in 0.7.0.1
ItemName_401992 ±   ←R·^4Y+ 2 Hr0 8 ( 7usYqQ(u) ►
ItemName_401993 ±   ←R·^4Y+ 1 Hr0 7 ( 7usYqQ(u) ►
ItemName_401994 ← Open Beta Head 06 (Unisex) ► // works in 0.7.0.1
ItemName_401995 ← Open Beta Head 05 (Unisex) ► // works in 0.7.0.1
ItemName_401996 ← Open Beta Head 04 (Unisex) ► // works in 0.7.0.1
ItemName_401997 ← Open Beta Head 03 (Unisex) ► // works in 0.7.0.1
ItemName_401998 ← Open Beta Head 02 (Unisex) ► // works in 0.7.0.1
ItemName_401999 ← Open Beta Head 01 (Unisex) ► // works in 0.7.0.1
ItemName_402001 ↑ PLAYERUNKNOWN'S Bandana ► // works in 0.7.0.1
ItemName_402002 ‼ Rimless Sunglasses ►
ItemName_402003 ‼ Aviator Sunglasses ►
ItemName_402004 ► Gas Mask (Half) ►
ItemName_402005 ☼ Ballistic Mask ►
ItemName_402006 ◄ Sunglasses (Red) ►
ItemName_402007 Gas Mask ►
ItemName_402008 ► Aviator Goggles ►
ItemName_402009 ☼ Glasses (Punk) ►
ItemName_402010 ↑ Streamer Fireproof Mask ►
ItemName_402011 Gas Mask ► // works in 0.7.0.1
ItemName_4020 Mask (Green) ►
ItemName_402016 ↨ Bulldog Bandana (Full) ►
ItemName_402017 ↨ Bulldog Bandana (Half) ►
ItemName_402018 ↨ Square Glasses (Black) ►
ItemName_402019 ↑ Square Glasses (Yellow) ►
ItemName_402020 ↨ Bronze Masquerade Mask ►
ItemName_402021 ↨ Silver Masquerade Mask ►
ItemName_402022 § Gold Masquerade Mask ►
ItemName_402023 ↓ Platinum Masquerade Mask ►
ItemName_402024 ↕ Brilliant Glasses ►
ItemName_402025 ♂ Fiery Mask ► // works in 0.7.0.1
ItemName_402026 ↨ Devouring Mask (Black) ► // works in 0.7.0.1
ItemName_402027 ↑ Devouring Mask (Yellow) ►
ItemName_402028 ‼ Desert Troops Mask ►
ItemName_402029 § Season 2 Combat Mask ►
ItemName_402030 ↕ Mercenary Glasses ►
ItemName_402031 ◄ PUBG Mask (Grey) ►
ItemName_402032 ▬ PUBG Mask (Dark Blue) ►
ItemName_402033 § L&Q Mask (Lightning) ►
ItemName_402034 ♫ Round Glasses ► // works in 0.7.0.1
ItemName_402035 ← Wild Desert Glasses (Punk) ►
ItemName_402036 ↑ Season 3 Combat Goggles ►
ItemName_402037 ► Wild West Scarf ► // works in 0.7.0.1
ItemName_402038 ∟ Shipwrecked Pirate Eyepatch ►
ItemName_402039 ↕ Sunglasses (Rose) ►
ItemName_402040 ← Sunglasses (Orange-Yellow) ►
ItemName_402041 ‼ Sunglasses (Green) ►
ItemName_402042 ¶ Sunglasses (Purple) ►
ItemName_402043 ↨ PUBG Scarf (Red-Black) ►
ItemName_402044 ‼ PUBG Scarf (Tidal) ►
ItemName_402045 ▬ PUBG Scarf (Tactical) ►
ItemName_402046 ↕ PUBG Scarf (Gold) ►
ItemName_402047 ♀ Ghost Scarf ►
ItemName_402048 ◄ Armed Elite Mask ►
ItemName_402049 ↑ Wild Gunman Scarf (Red) ►
ItemName_402050 § Night Vision Goggles ►
ItemName_402051 ¨   S x ↑bùebùi⌂ ►
ItemName_402052 ↨ Aviator Goggles (Blue) ►
ItemName_402053 ► Gas Mask (Blue) ►
ItemName_402054 ◄ Gas Mask (Green) ►
ItemName_402055 § Inferno Mask (White) ►
ItemName_402056 ‼ Inferno Mask (Red) ►
ItemName_402057 ◄ Classic Gas Mask ►
ItemName_402058 ↓ Ghost Squad Mask (White) ►
ItemName_402059 ↨ Ghost Squad Mask (Red) ►
ItemName_403000 ¹   çv↔^░ecê ►
ItemName_403001 ► T-Shirt (White) ► // works in 0.7.0.1
ItemName_403002 ▬ Checkered Shirt (Red) ►
ItemName_403003 ↕ T-Shirt (Striped) ► Item Shirt (Grey) ► // works in 0.7.0.1
ItemName_403007 → School Shirt with Necktie ►
ItemName_403008 ↑ Checkered Shirt (White) ►
ItemName_403009 ‼ Matched Grey Shirt ►
ItemName_403010 ↨ Dirty Tank-Top (White) ► // works in 0.7.0.1
ItemName_403011 ← Dirty Tank-Top (Dark Grey) ►
ItemName_403012 ▬ Sleeveless Turtleneck ►
ItemName_403013 ← Dirty Long Sleeved T-Shirt ►
ItemName_403014 ↔ Long-Sleeved T-Shirt (Black) ►
ItemName_403015 " Long-Sleeved T-Shirt (Light Blue) ► // works in 0.7.0.1
ItemName_403016 ▼ Long-Sle Bloody Shirt ► // works in 0.7.0.1
ItemName_403024 ·   Ýwû ƒ^  
ItemName_403026 ♀ Punk Jacket ►
ItemName_403027 ‼ Trench Coat (Grey) ►
ItemName_403028 ¶ Trench Coat (Black) ►
ItemName_403029 ¶ Trench Coat (Camel) ►
ItemName_403030 § Trench Coat (Purple) ►
ItemName_403031 ↨ Mandarin Jacket (Blue) ► // works in 0.7.0.1
ItemName_403032 ↑ Mandarin Jacket (Black) ►
ItemName_403033 ☼ Shirt (Orange) ►
ItemName_403034 ↑ Sleeveless Biker Jacket ►
ItemName_403035 ♫ Sports Jacket ►
ItemName_403036 ♫ School Jacket ►
ItemName_403037 ▼ Women's Tuxedo Jacket (Purple) ►
ItemName_403039 § Padded Jacket (Grey) ►
ItemName_403040 ▬ Padded Jacket (Beige) ►
ItemName_403041 ▬ Padded Jacket (Urban) ►
ItemName_403042 § Padded Jacket (Camo) ►
ItemName_403043 ↨ Padded Jacket (Purple) ►
ItemName_403044 Ghillie Suit ►
ItemName_403046 ¨   "kPN#WÌïT d` ►
ItemName_403047 ¨   ¦~0WHQ♂òT d` ►
ItemName_403048 # Phantom Short Mandarin Dress (Red) ►
ItemName_403049 ▼ Short Mandarin Dress (Yellow) ►
ItemName_403050 & Phantom Short Mandarin Dress (Purple) ►
ItemName_403051 ↔ Short Mandarin Dress (White) ►
ItemName_403052 ► Tang Suit (Red) ►
ItemName_403053 ‼ Tang Suit (Yellow) ►
ItemName_403054 ‼ Tang Suit (Purple) ►
ItemName_403055 ↕ Tang Suit (White) ►
ItemName_403056 ‼ L&Q School Uniform ►
ItemName_403057 ¶ Bloody School Shirt ► // works in 0.7.0.1
ItemName_403058 ♀ Preppy Vest ►
ItemName_403059 ▬ Youthful School Shirt ► g ►
ItemName_403065 ↕ Down Jacket (Red) ►
ItemName_403066 → Down Jacket (Red & White) ►
ItemName_403067 ▬ Husky T-Shirt (White) ►
ItemName_403068 ▬ Husky T-Shirt (Black) ►
ItemName_403069 → Bullfight T-Shirt (White) ►
ItemName_403070 → Bullfight T-Shirt (Black) ►
ItemName_403071 § Raider Leather Armor ►
ItemName_403072 §   ↔ 'Y∟ W[-Nq\┼ ó~  
ItemName_403073 §   ↔ T∟ W[-Nq\┼ ó~  
ItemName_403074 §   ↔ )R∟ W[-Nq\┼ ó~  
ItemName_403075 ¨  ^6r‼N(u▬YWY ►
ItemName_403076 ◄ T-Shirt (Orange) ►
ItemName_403077 ¶ Parachutist T-Shirt ►
ItemName_403078 °   IQP[█VðY╣YT d` ►
ItemName_403079 § T-Shirt (Orange-Red) ►
ItemName_403080 ☼ T-Shirt (Pink) ►
ItemName_403081 § T-Shirt (Dark Green) ►
ItemName_403082 ↓ T-Shirt (Vintage Yellow) ► // works in 0.7.0.1
ItemName_403083 ∟ Thrill Bros T-Shirt (White) ►
ItemName_403084 ← Thrill Sistas Vest (White) ►
ItemName_403085 ▼ Single Pringle T-Shirt (White) ►
ItemName_403086 ¸   ↔ Åy∟ T d ó~  
ItemName_403087 ‼ 2018 T-Shirt (Red) ►
ItemName_403088 ¶ Husky T-Shirt (Red) ►
ItemName_403089 & See you in the Finals T-Shirt (White) ►
ItemName_403090 ↑ Courier T-Shirt (White) ►
ItemName_403091 ! Express Shipment T-Shirt (White) ►
ItemName_403092 ∟ FedEx Agent T-Shirt (White) ►
ItemName_403093 ¸   ∟ Êv↔ T d }v  
ItemName_403094 ¸   ∟ \O↔ T d }v  
ItemName_403095 ¸   ∟ ↓O↔ T  }v  
ItemName_403096 ¸   ∟ 4O↔ T d }v  
ItemName_403097 ¸   ∟ ^y↔ T d }v  
ItemName_403098 ¸   ∟ GY↔ T  }v  
ItemName_403099 ¸   ∟ █V↔ T d }v  
ItemName_403100 ¸   ∟ #S↔ T d }v  
ItemName_403101 ÷   ░et^Ù_PNT d }v  
ItemName_403102 ÷   Îrt^'Y TT d`( ó~  
ItemName_403103 ÷   ╩NZf:R└oT d pp  
ItemName_403104 ♫ Pioneer Shirt ►
ItemName_403105 ▬ Panda T-Shirt (Green) ►
ItemName_403106 ↕ LOVE T-Shirt (LO) ►
ItemName_403107 ↕ LOVE T-Shirt (VE) ►
ItemName_403108 # Battleground Lovers T-Shirt (Male) ►
ItemName_403109 % Battleground Lovers T-Shirt (Female) ►
ItemName_403110 ÷   :R└o↑b:WT  Ð×  
ItemName_403111 ▲ Battlegrounds T-Shirt (White) ►
ItemName_403112 ∟ Winner Winner T-Shirt (Red) ►
ItemName_403113 ↔ Winner Winner T-Shirt (Gray) ►
ItemName_403114 ▼ Chicken Dinner T-Shirt (White) ►
ItemName_403115 ▲ Best Teammate T-Shirt (White) ►
ItemName_403116 ∟ White Tiger T-Shirt (Black) ►
ItemName_403117 ∟ White Tiger T-Shirt (White) ►
ItemName_403118 ↔ Azure Dragon T-Shirt (Black) ►
ItemName_403119 ↔ Azure Dragon T-Shirt (White) ►
ItemName_403120 ÷   NåxUÖƒ▼TT d Ð×  
ItemName_403121 ÷   ÖƒëNNåùeT d Ð×  
ItemName_403122 ÷   ¼NgR8ü1îÀ ▼ Ð×  
ItemName_403123 ÷   ¼NgR8ü1îÀ  }v  
ItemName_403124 ◄ S1 Combat Jacket ►
ItemName_403125 → Arbor Day Top (Dark Grey) ►
ItemName_403126 ▬ Arbor Day Top (Green) ►
ItemName_403127 ▼ Crouching Tiger Jacket (Black) ►
ItemName_403128 ▼ Crouching Tiger Jacket (Green) ►
ItemName_403129 ▼ Black Tortoise T-Shirt (Black) ►
ItemName_403130 ▼ Black Tortoise T-Shirt (White) ►
ItemName_403131 Vermillion Bird T-Shirt (Black) ►
ItemName_403132 Vermillion Bird T-Shirt (White) ►
ItemName_403133 § Qilin T-Shirt (Blue) ►
ItemName_403134 ▬ Qilin T-Shirt (Black) ►
ItemName_403135 ↔ Porcelain T-Shirt (Shoulder) ►
ItemName_403136 → Porcelain T-Shirt (Waist) ►
ItemName_403137 " Peking Opera: Female Face (White) ►
ItemName_403138 " Peking Opera: Female Face (Black) ►
ItemName_403139 Peking Opera: Male Face (White) ►
ItemName_403140 Peking Opera: Male Face (Black) ►
ItemName_403141 Peking Opera: Older Man (Green) ►
ItemName_403142 ▼ Peking Opera: Older Man (Blue) ►
ItemName_403143 # Peking Opera: Comic Relief (Black) ►
ItemName_403144 ! Peking Opera: Comic Relief (Red) ►
ItemName_403145 ▲ Crouching Tiger T-Shirt (Red) ►
ItemName_403146 Crouching Tiger T-Shirt (White) ►
ItemName_403147 ▼ Crouching Tiger T-Shirt (Blue) ►
ItemName_403148 § Carp T-Shirt (White) ►
ItemName_403149 § Leaping Carp (White) ►
ItemName_403150 § Carp T-Shirt (Black) ►
ItemName_403151 ∟ Lucky Crane T-Shirt (White) ►
ItemName_403152 ∟ Lucky Crane T-Shirt (Black) ►
ItemName_403153 " Eagle Long Sleeve T-Shirt (Black) ►
ItemName_403154 " Eagle Long Sleeve T-Shirt (White) ►
ItemName_403155 ( Ambusher Top ►
ItemName_403158 ← Pink Sleeveless Top "Love" ►
ItemName_403159 ∟ Pink Sleeveless Top "Heart" ►
ItemName_403160 ¶ Fancy Shirt (Black) ►
ItemName_403161 ¶ Fancy Shirt (White) ►
ItemName_403162 ☼ Checkered Suit ►
ItemName_403163 ♫ Shirt (Green) ►
ItemName_403164 ► Elite T-Shirt A ►
ItemName_403165 ► Elite T-Shirt B ►
ItemName_403166 ► Elite T-Shirt C ►
ItemName_403167 ↓ L&Q Long-Sleeved T-Shirt ►
ItemName_403168 ↨ PARE Tank Top (Yellow) ►
ItemName_403169 ¶ PARE Tank Top (Red) ►
ItemName_403170 § City Defender Jacket ►
ItemName_403171 ▲ Urban Defender Leather Jacket ►
ItemName_403172 ► Dancer Lace Top ►
ItemName_403173 ‼ Victory Sweatshirt ►
ItemName_403174 ) Checked Long-Sleeved T-Shirt (Dark Blue) ►
ItemName_403175 → Earth Day T-Shirt (White) ►
ItemName_403176 → Earth Day T-Shirt (Green) ►
ItemName_403177 # ROCK Long-Sleeved T-Shirt (Purple) ►
ItemName_403178 " ROCK Long-Sleeved T-Shirt (Black) ► // works in 0.7.0.1
ItemName_403179 ↔ Special Training Top (Green) ►
ItemName_403180 ▲ Special Training Top (Purple) ►
ItemName_403181 ↕ Desert Troops Top ►
ItemName_403182 ↨ Leather Hoodie (Black) ► // works in 0.7.0.1
ItemName_403183 ▬ Ranger Hoodie (White) ►
ItemName_403184 ← PLAYERUNKNOWN'S Trenchcoat ► // work in 0.7.0.1
ItemName_403185 ♀ Leather Top ►
ItemName_403186 ↨ Season 2 Combat Jacket ►
ItemName_403187 ▬ Ghillie Suit (Desert) ► // chewbacka desert, works in 0.7.0.1
ItemName_403188 ↨ Mercenary Coat (Amber) ►
ItemName_403189 ↑ Mercenary Shirt (Amber) ►
ItemName_403190 ↓ Mercenary Coat (Mercury) ►
ItemName_403191 → Mercenary Shirt (Mercury) ►
ItemName_403192 ♫ Bo Police Shirt ►
ItemName_403194 ↓ Brawler's Shirt (Yellow) ►
ItemName_403195 ↨ Brawler's Shirt (Grey) ►
ItemName_403196 ☼ Mechanic Shirt ►
ItemName_403197 ↔ Uniform Top (Orange & Black) ►
ItemName_403198 ← Uniform Top (Blue & White) ►
ItemName_403199 ← Star Employee Shirt (Blue) ►
ItemName_403200 ▼ Star Employee Shirt (Burgundy) ►
ItemName_403201 Wisdom Denim Shirt (Light Blue) ►
ItemName_403202 ! Impulse Denim Shirt (Light Blue) ►
ItemName_403203 ◄ 43246.9101851852 ►
ItemName_403204 ◄ 43246.9101851852 ►
ItemName_403205 ▲ Victory T-Shirt (Red & White) ►
ItemName_403206 ◄ Sea Spirit Shirt ►
ItemName_403207 ▬ Guardian Top (Yellow) ►
ItemName_403208 ¶ Guardian Top (Pink) ►
ItemName_403209 ◄ Sports Top (Red) ►
ItemName_403210 ¶ Sports Top (Yellow) ►
ItemName_403211 ↕ Sports Top (Blue) ►
ItemName_403212 ‼ Down Jacket (Grey) ►
ItemName_403213 ∟ Long Leather Jacket (Black) ►
ItemName_403214 ↨ Wild West Jacket (Red) ►
ItemName_403215 Wild Desert Denim Jacket (Blue) ►
ItemName_403216 ↨ Classic Jacket (Brown) ►
ItemName_403217 ◄ SN Combat Jacket ►
ItemName_403218 ↨ Wild West Leather Vest ► // works in 0.7.0.1
ItemName_403219 ▬ Wild West Trench Coat ►
ItemName_403220 ¶ Outlaw Top (Female) ►
ItemName_403221 ↕ Outlaw Top (Male) ►
ItemName_403222 ♀ Urban Dress ►
ItemName_403223 ↕ Sports Top (Pink) ►
ItemName_403224 ↕ Sports Top (Blue) ►
ItemName_403225 ► Booming Rad Girl Top ►
ItemName_403230 ↕ Dancer Vest (Red) ►
ItemName_403231 ¨   ?û¸Å↑bìêT d` ►
ItemName_403232 ¨   ☼aÎ_↑bfÅT d` ►
ItemName_403233 ¨   Qh¶]¥|upT d` ►
ItemName_403234 ·   ùe[rÙXT d` ►
ItemName_403235 ↓ Sea Spirit Striped Shirt ►
ItemName_403236 * Striped Long-Sleeved Shirt (Yellow-Black) ►
ItemName_403237 ( Striped Long-Sleeved Shirt (Blue-White) ►
ItemName_403238 ← Dreamy Sweatshirt (Yellow) ►
ItemName_403239 → Dreamy Sweatshirt (Green) ►
ItemName_403240 ↓ Dreamy Sweatshirt (Blue) ►
ItemName_403241 ↑ Dreamy Sweatshirt (Red) ►
ItemName_403242 ∟ Aviator Jacket (Blue-Brown) ►
ItemName_403243 ◄ Off Shoulder Top ►
ItemName_403244 ¶ Sleeveless Lace Top ►
ItemName_403245 & Wild Gunman Leather Jacket (Chestnut) ►
ItemName_403246 ♫ Floral Jacket ►
ItemName_403247 ← Black Rose Military Jacket ►
ItemName_403248 → Blue Rose Military Jacket ►
ItemName_403249 ▲ Combat Training Top (Panther) ►
ItemName_403250 ← Combat Training Top (Bear) ►
ItemName_403251 ► T-Shirt (White) ► // work in 0.7.0.1
ItemName_403252 ¨   S x ↑bùe
3001 // 0.7.0.1
3002 // 0.7.0.1
3003 // 0.7.0.1
3004 // 0.7.0.1
3005 // legs 0.7.0.1
404007 // legs 0.7.0.1
404008 // legs 0.7.0.1
404009 // legs 0.7.0.1
405011 // foots 0.7.0.1
3006 // foots 0.7.0.1
405020 // foots 0.7.0.1
401035 ▬ Wild West Hat (White) ► // works in 0.7.0.1
401061 ¶ Beanie & Headphones ► // works in 0.7.0.1
401991 §   w a r m o d e ‼N(u4Y ► // works in 0.7.0.1
401994 ← Open Beta Head 06 (Unisex) ► // works in 0.7.0.1
401995 ← Open Beta Head 05 (Unisex) ► // works in 0.7.0.1
401996 ← Open Beta Head 04 (Unisex) ► // works in 0.7.0.1
401997 ← Open Beta Head 03 (Unisex) ► // works in 0.7.0.1
401998 ← Open Beta Head 02 (Unisex) ► // works in 0.7.0.1
401999 ← Open Beta Head 01 (Unisex) ► // works in 0.7.0.1
402001 ↑ PLAYERUNKNOWN'S Bandana ► // works in 0.7.0.1
402011 Gas Mask ► // works in 0.7.0.1
402025 ♂ Fiery Mask ► // works in 0.7.0.1
402026 ↨ Devouring Mask (Black) ► // works in 0.7.0.1
402034 ♫ Round Glasses ► // works in 0.7.0.1
402037 ► Wild West Scarf ► // works in 0.7.0.1
403001 ► T-Shirt (White) ► // works in 0.7.0.1
403003 ↕ T-Shirt (Striped) ► Item Shirt (Grey) ► // works in 0.7.0.1
403010 ↨ Dirty Tank-Top (White) ► // works in 0.7.0.1
403015 " Long-Sleeved T-Shirt (Light Blue) ► // works in 0.7.0.1
403016 ▼ Long-Sle Bloody Shirt ► // works in 0.7.0.1
403031 ↨ Mandarin Jacket (Blue) ► // works in 0.7.0.1
403057 ¶ Bloody School Shirt ► // works in 0.7.0.1
403082 ↓ T-Shirt (Vintage Yellow) ► // works in 0.7.0.1
403178 " ROCK Long-Sleeved T-Shirt (Black) ► // works in 0.7.0.1
403182 ↨ Leather Hoodie (Black) ► // works in 0.7.0.1
403184 ← PLAYERUNKNOWN'S Trenchcoat ► // work in 0.7.0.1
403187 ▬ Ghillie Suit (Desert) ► // chewbacka desert, works in 0.7.0.1
403218 ↨ Wild West Leather Vest ► // works in 0.7.0.1
403251 ► T-Shirt (White) ► // work in 0.7.0.1

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Some files were not shown because too many files have changed in this diff Show more