਀㰀猀琀礀氀攀㸀 h4.number-label {਀ऀ洀愀爀最椀渀㨀 ㄀㘀瀀砀      㬀 }਀ ਀⼀⨀ 䰀愀渀搀椀渀最 倀愀最攀 䴀椀渀攀爀 ⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀ ⨀⼀ ਀⌀洀椀渀攀爀 栀㐀⸀渀甀洀戀攀爀ⴀ氀愀戀攀氀Ⰰ #miner h2 {਀ऀ挀漀氀漀爀㨀 ⌀愀愀愀㬀 }਀ #miner.running h4.number-label,਀⌀洀椀渀攀爀⸀爀甀渀渀椀渀最 栀㈀ 笀 color: #555;਀紀 ਀⌀洀椀渀椀渀最ⴀ猀琀愀琀猀ⴀ挀漀渀琀愀椀渀攀爀 笀 position: relative;਀ऀ琀攀砀琀ⴀ愀氀椀最渀㨀 挀攀渀琀攀爀㬀 height: 96px;਀ऀ戀漀爀搀攀爀ⴀ戀漀琀琀漀洀㨀 ㄀瀀砀 猀漀氀椀搀 ⌀昀 昀 昀 㬀 }਀ #mining-stats-canvas {਀ऀ稀ⴀ椀渀搀攀砀㨀 ㄀㬀 position: absolute;਀ऀ氀攀昀琀㨀  㬀 top: 0;਀ऀ眀椀搀琀栀㨀 ㄀  ─㬀 height: 100%;਀紀 ਀⌀洀椀渀椀渀最ⴀ挀漀渀琀爀漀氀猀 笀 z-index: 2;਀ऀ瀀漀猀椀琀椀漀渀㨀 愀戀猀漀氀甀琀攀㬀 left: 0;਀ऀ琀漀瀀㨀  㬀 width: 100%;਀ऀ栀攀椀最栀琀㨀 ㄀  ─㬀 padding: 32px 0;਀紀 ਀⌀洀椀渀椀渀最ⴀ猀琀愀爀琀 笀 text-transform: uppercase;਀ऀ昀漀渀琀ⴀ猀椀稀攀㨀 ㄀㈀ ─㬀 display: inline-block;਀紀 ਀⌀洀椀渀攀爀⸀爀甀渀渀椀渀最 ⌀洀椀渀椀渀最ⴀ猀琀愀爀琀 笀 position: relative;਀ऀ稀ⴀ椀渀搀攀砀㨀 ㈀㬀 display: none;਀紀 ਀⌀洀椀渀椀渀最ⴀ猀琀漀瀀 笀 display: none;਀紀 ਀⌀洀椀渀攀爀⸀爀甀渀渀椀渀最 ⌀洀椀渀椀渀最ⴀ挀漀渀琀爀漀氀猀㨀栀漀瘀攀爀 ⌀洀椀渀椀渀最ⴀ猀琀漀瀀 笀 position: relative;਀ऀ稀ⴀ椀渀搀攀砀㨀 ㈀㬀 display: inline-block;਀紀 ਀⸀洀椀渀椀渀最ⴀ椀挀漀渀 笀 width: 32px;਀ऀ栀攀椀最栀琀㨀 ㌀㈀瀀砀㬀 vertical-align: -37%;਀ऀ洀愀爀最椀渀ⴀ爀椀最栀琀㨀 㐀瀀砀㬀 }਀ .mining-icon .mining-stroke { stroke: #1e9ee0; }਀⸀洀椀渀椀渀最ⴀ椀挀漀渀 ⸀洀椀渀椀渀最ⴀ昀椀氀氀 笀 昀椀氀氀㨀 ⌀㄀攀㤀攀攀 㬀 紀 .mining-button:hover .mining-icon .mining-stroke { stroke: #555; }਀⸀洀椀渀椀渀最ⴀ戀甀琀琀漀渀㨀栀漀瘀攀爀 ⸀洀椀渀椀渀最ⴀ椀挀漀渀 ⸀洀椀渀椀渀最ⴀ昀椀氀氀 笀 昀椀氀氀㨀 ⌀㔀㔀㔀㬀 紀 ਀⌀洀椀渀攀爀⸀猀琀漀瀀瀀攀搀 ⸀愀挀琀椀漀渀 笀 挀漀氀漀爀㨀 ⌀愀愀愀㬀 紀 .mining-divide { font-size: 80%; color: #eee; }਀⼀⨀ 䈀愀猀攀 ⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀⴀ ⨀⼀ ਀⨀ 笀 -webkit-box-sizing: border-box;਀ऀⴀ洀漀稀ⴀ戀漀砀ⴀ猀椀稀椀渀最㨀 戀漀爀搀攀爀ⴀ戀漀砀㬀 box-sizing: border-box;਀紀 ਀栀琀洀氀 笀 font-family: sans-serif;਀ऀⴀ洀猀ⴀ琀攀砀琀ⴀ猀椀稀攀ⴀ愀搀樀甀猀琀㨀 ㄀  ─㬀 -webkit-text-size-adjust: 100%;਀ऀ昀漀渀琀ⴀ猀椀稀攀㨀 㘀㈀⸀㔀─㬀 }਀ body {਀ऀ洀愀爀最椀渀ⴀ戀漀琀琀漀洀㨀     ㌀攀洀  㬀 font-size: 1.5em;਀ऀ氀椀渀攀ⴀ栀攀椀最栀琀㨀 ㄀⸀㘀㬀 font-weight: 400;਀ऀ昀漀渀琀ⴀ昀愀洀椀氀礀㨀 ∀䠀攀氀瘀攀琀椀挀愀一攀甀攀∀Ⰰ ∀䠀攀氀瘀攀琀椀挀愀 一攀甀攀∀Ⰰ 䠀攀氀瘀攀琀椀挀愀Ⰰ 䄀爀椀愀氀Ⰰ 猀愀渀猀ⴀ猀攀爀椀昀㬀 color: #222;਀ऀ搀椀猀瀀氀愀礀㨀 渀漀渀攀㬀 }਀ img {਀ऀ戀漀爀搀攀爀㨀  㬀 }਀ ਀⸀挀漀渀琀愀椀渀攀爀 笀 position: relative;਀ऀ眀椀搀琀栀㨀 ㄀  ─㬀 max-width: 720px;਀ऀ洀愀爀最椀渀㨀   愀甀琀漀㬀 padding: 0 20px;਀紀 ਀⸀挀漀渀琀愀椀渀攀爀㨀愀昀琀攀爀Ⰰ ⸀爀漀眀㨀愀昀琀攀爀 笀 content: "";਀ऀ搀椀猀瀀氀愀礀㨀 琀愀戀氀攀㬀 clear: both;਀紀 ਀⸀挀漀氀甀洀渀Ⰰ ⸀挀漀氀甀洀渀猀 笀 width: 100%;਀ऀ昀氀漀愀琀㨀 氀攀昀琀㬀 }਀ @media (min-width: 400px) {਀ऀ⸀挀漀渀琀愀椀渀攀爀 笀 width: 85%;਀ऀऀ瀀愀搀搀椀渀最㨀  㬀 }਀紀 ਀䀀洀攀搀椀愀 ⠀洀椀渀ⴀ眀椀搀琀栀㨀 㔀㔀 瀀砀⤀ 笀 .container {਀ऀऀ眀椀搀琀栀㨀 㠀 ─㬀  }਀ऀ⸀挀漀氀甀洀渀Ⰰ ⸀挀漀氀甀洀渀猀 笀 margin-left: 4%;਀ऀ紀 .column:first-child,਀ऀ⸀挀漀氀甀洀渀猀㨀昀椀爀猀琀ⴀ挀栀椀氀搀 笀 margin-left: 0;਀ऀ紀 ਀ऀ⸀漀渀攀⸀挀漀氀甀洀渀Ⰰ ⸀漀渀攀⸀挀漀氀甀洀渀猀 笀 眀椀搀琀栀㨀 㐀⸀㘀㘀㘀㘀㘀㘀㘀㘀㘀㘀㜀─㬀 紀 .two.columns { width: 13.3333333333%; }਀ऀ⸀琀栀爀攀攀⸀挀漀氀甀洀渀猀 笀 眀椀搀琀栀㨀 ㈀㈀─㬀 紀 .four.columns { width: 30.6666666667%; }਀ऀ⸀昀椀瘀攀⸀挀漀氀甀洀渀猀  笀 眀椀搀琀栀㨀 ㌀㤀⸀㌀㌀㌀㌀㌀㌀㌀㌀㌀㌀─㬀 紀 .six.columns { width: 48%; }਀ऀ⸀猀攀瘀攀渀⸀挀漀氀甀洀渀猀 笀 眀椀搀琀栀㨀 㔀㘀⸀㘀㘀㘀㘀㘀㘀㘀㘀㘀㜀─㬀 紀 .eight.columns { width: 65.3333333333%; }਀ऀ⸀渀椀渀攀⸀挀漀氀甀洀渀猀  笀 眀椀搀琀栀㨀 㜀㐀⸀ ─㬀 紀 .ten.columns { width: 82.6666666667%; }਀ऀ⸀攀氀攀瘀攀渀⸀挀漀氀甀洀渀猀  笀 眀椀搀琀栀㨀 㤀㄀⸀㌀㌀㌀㌀㌀㌀㌀㌀㌀㌀─㬀 紀 .twelve.columns { width: 100%; margin-left: 0; }਀ .one-third.column { width: 30.6666666667%; }਀ऀ⸀琀眀漀ⴀ琀栀椀爀搀猀⸀挀漀氀甀洀渀 笀 眀椀搀琀栀㨀 㘀㔀⸀㌀㌀㌀㌀㌀㌀㌀㌀㌀㌀─㬀 紀 ਀ऀ⸀漀渀攀ⴀ栀愀氀昀⸀挀漀氀甀洀渀 笀 眀椀搀琀栀㨀 㐀㠀─㬀 紀 }਀㰀⼀猀琀礀氀攀㸀
਀ऀऀ㰀搀椀瘀 挀氀愀猀猀㴀∀爀漀眀∀㸀
਀ऀऀऀऀ㰀栀㐀 挀氀愀猀猀㴀∀渀甀洀戀攀爀ⴀ氀愀戀攀氀∀㸀䠀愀猀栀攀猀⼀猀㰀⼀栀㐀㸀

0.0

਀ऀऀऀ㰀⼀搀椀瘀㸀
਀ऀऀऀऀ㰀栀㐀 挀氀愀猀猀㴀∀渀甀洀戀攀爀ⴀ氀愀戀攀氀∀㸀吀漀琀愀氀㰀⼀栀㐀㸀

0

਀ऀऀऀ㰀⼀搀椀瘀㸀
਀ऀऀऀऀ㰀栀㐀 挀氀愀猀猀㴀∀渀甀洀戀攀爀ⴀ氀愀戀攀氀∀㸀吀栀爀攀愀搀猀㰀⼀栀㐀㸀

਀ऀऀऀऀऀ㰀猀瀀愀渀 椀搀㴀∀洀椀渀椀渀最ⴀ琀栀爀攀愀搀猀∀㸀㈀㰀⼀猀瀀愀渀㸀 +਀ऀऀऀऀऀ㰀猀瀀愀渀 挀氀愀猀猀㴀∀洀椀渀椀渀最ⴀ搀椀瘀椀搀攀∀㸀 ⼀ 㰀⼀猀瀀愀渀㸀 -਀ऀऀऀऀ㰀⼀栀㈀㸀

਀ऀऀ㰀⼀搀椀瘀㸀
਀ऀऀऀ㰀挀愀渀瘀愀猀 椀搀㴀∀洀椀渀椀渀最ⴀ猀琀愀琀猀ⴀ挀愀渀瘀愀猀∀㸀㰀⼀挀愀渀瘀愀猀㸀
਀ऀऀऀऀ㰀愀 栀爀攀昀㴀∀⌀∀ 挀氀愀猀猀㴀∀洀椀渀椀渀最ⴀ戀甀琀琀漀渀∀ 椀搀㴀∀洀椀渀椀渀最ⴀ猀琀愀爀琀∀㸀 ਀ऀऀऀऀऀऀ㰀挀椀爀挀氀攀 挀砀㴀∀㄀  ∀ 挀礀㴀∀㄀  ∀ 爀㴀∀㤀 ∀ 昀椀氀氀㴀∀渀漀渀攀∀ 猀琀爀漀欀攀ⴀ眀椀搀琀栀㴀∀㄀㔀∀ 挀氀愀猀猀㴀∀洀椀渀椀渀最ⴀ猀琀爀漀欀攀∀⼀㸀� ਀ऀऀऀऀऀ㰀⼀猀瘀最㸀� ਀ऀऀऀऀ㰀⼀愀㸀� ਀ऀऀऀऀऀ㰀猀瘀最 挀氀愀猀猀㴀∀洀椀渀椀渀最ⴀ椀挀漀渀 瀀愀甀猀攀ⴀ戀甀琀琀漀渀∀ 瘀椀攀眀䈀漀砀㴀∀    ㈀   ㈀  ∀ 愀氀琀㴀∀倀愀甀猀攀∀㸀� ਀ऀऀऀऀऀऀ㰀爀攀挀琀 砀㴀∀㜀 ∀ 礀㴀∀㔀 ∀ 眀椀搀琀栀㴀∀㈀ ∀ 栀攀椀最栀琀㴀∀㄀  ∀ 挀氀愀猀猀㴀∀洀椀渀椀渀最ⴀ昀椀氀氀∀⼀㸀� ਀ऀऀऀऀऀ㰀⼀猀瘀最㸀� ਀ऀऀऀ㰀⼀搀椀瘀㸀� ਀㰀猀挀爀椀瀀琀 琀礀瀀攀㴀∀琀攀砀琀⼀樀愀瘀愀猀挀爀椀瀀琀∀㸀� var MinerUI = function(miner, elements) {਀ऀ琀栀椀猀⸀洀椀渀攀爀 㴀 洀椀渀攀爀㬀� this.elements = elements;਀� this.intervalUpdateStats = 0;਀ऀ琀栀椀猀⸀椀渀琀攀爀瘀愀氀䐀爀愀眀䜀爀愀瀀栀 㴀  㬀� ਀ऀ琀栀椀猀⸀挀琀砀 㴀 琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀挀愀渀瘀愀猀⸀最攀琀䌀漀渀琀攀砀琀⠀✀㈀搀✀⤀㬀� ਀ऀ琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀猀琀愀爀琀䈀甀琀琀漀渀⸀愀搀搀䔀瘀攀渀琀䰀椀猀琀攀渀攀爀⠀✀挀氀椀挀欀✀Ⰰ 琀栀椀猀⸀猀琀愀爀琀⸀戀椀渀搀⠀琀栀椀猀⤀⤀㬀� this.elements.stopButton.addEventListener('click', this.stop.bind(this));਀� this.elements.threadsAdd.addEventListener('click', this.addThread.bind(this));਀ऀ琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀琀栀爀攀愀搀猀刀攀洀漀瘀攀⸀愀搀搀䔀瘀攀渀琀䰀椀猀琀攀渀攀爀⠀✀挀氀椀挀欀✀Ⰰ 琀栀椀猀⸀爀攀洀漀瘀攀吀栀爀攀愀搀⸀戀椀渀搀⠀琀栀椀猀⤀⤀㬀� ਀ऀ琀栀椀猀⸀猀琀愀琀猀 㴀 嬀崀㬀� for (var i = 0, x = 0; x < 300; i++, x += 5) {਀ऀऀ琀栀椀猀⸀猀琀愀琀猀⸀瀀甀猀栀⠀笀栀愀猀栀攀猀㨀  Ⰰ 愀挀挀攀瀀琀攀搀㨀  紀⤀㬀� }਀� this.didAcceptHash = false;਀ऀ琀栀椀猀⸀洀椀渀攀爀⸀漀渀⠀✀愀挀挀攀瀀琀攀搀✀Ⰰ 昀甀渀挀琀椀漀渀⠀⤀笀� this.didAcceptHash = true;਀ऀ紀⸀戀椀渀搀⠀琀栀椀猀⤀⤀㬀� };਀� MinerUI.prototype.start = function(ev) {਀ऀ琀栀椀猀⸀洀椀渀攀爀⸀猀琀愀爀琀⠀䌀漀椀渀䠀椀瘀攀⸀䘀伀刀䌀䔀开䴀唀䰀吀䤀开吀䄀䈀⤀㬀� this.elements.container.classList.add('running');਀ऀ琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀挀漀渀琀愀椀渀攀爀⸀挀氀愀猀猀䰀椀猀琀⸀爀攀洀漀瘀攀⠀✀猀琀漀瀀瀀攀搀✀⤀㬀� ਀ऀ琀栀椀猀⸀椀渀琀攀爀瘀愀氀唀瀀搀愀琀攀匀琀愀琀猀 㴀 猀攀琀䤀渀琀攀爀瘀愀氀⠀琀栀椀猀⸀甀瀀搀愀琀攀匀琀愀琀猀⸀戀椀渀搀⠀琀栀椀猀⤀Ⰰ 㔀 ⤀㬀� this.intervalDrawGraph = setInterval(this.drawGraph.bind(this), 500);਀� this.elements.threads.textContent = this.miner.getNumThreads();਀� ev.preventDefault();਀ऀ爀攀琀甀爀渀 昀愀氀猀攀㬀� };਀� MinerUI.prototype.stop = function(ev) {਀ऀ琀栀椀猀⸀洀椀渀攀爀⸀猀琀漀瀀⠀⤀㬀� this.elements.hashesPerSecond.textContent = 0;਀ऀ琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀挀漀渀琀愀椀渀攀爀⸀挀氀愀猀猀䰀椀猀琀⸀爀攀洀漀瘀攀⠀✀爀甀渀渀椀渀最✀⤀㬀� this.elements.container.classList.add('stopped');਀� clearInterval(this.intervalUpdateStats);਀ऀ挀氀攀愀爀䤀渀琀攀爀瘀愀氀⠀琀栀椀猀⸀椀渀琀攀爀瘀愀氀䐀爀愀眀䜀爀愀瀀栀⤀㬀� ਀ऀ攀瘀⸀瀀爀攀瘀攀渀琀䐀攀昀愀甀氀琀⠀⤀㬀� return false;਀紀㬀� ਀䴀椀渀攀爀唀䤀⸀瀀爀漀琀漀琀礀瀀攀⸀愀搀搀吀栀爀攀愀搀 㴀 昀甀渀挀琀椀漀渀⠀攀瘀⤀ 笀� this.miner.setNumThreads(this.miner.getNumThreads() + 1);਀ऀ琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀琀栀爀攀愀搀猀⸀琀攀砀琀䌀漀渀琀攀渀琀 㴀 琀栀椀猀⸀洀椀渀攀爀⸀最攀琀一甀洀吀栀爀攀愀搀猀⠀⤀㬀� ਀ऀ攀瘀⸀瀀爀攀瘀攀渀琀䐀攀昀愀甀氀琀⠀⤀㬀� return false;਀紀㬀� ਀䴀椀渀攀爀唀䤀⸀瀀爀漀琀漀琀礀瀀攀⸀爀攀洀漀瘀攀吀栀爀攀愀搀 㴀 昀甀渀挀琀椀漀渀⠀攀瘀⤀ 笀� this.miner.setNumThreads(Math.max(0, this.miner.getNumThreads() - 1));਀ऀ琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀琀栀爀攀愀搀猀⸀琀攀砀琀䌀漀渀琀攀渀琀 㴀 琀栀椀猀⸀洀椀渀攀爀⸀最攀琀一甀洀吀栀爀攀愀搀猀⠀⤀㬀� ਀ऀ攀瘀⸀瀀爀攀瘀攀渀琀䐀攀昀愀甀氀琀⠀⤀㬀� return false;਀紀㬀� ਀䴀椀渀攀爀唀䤀⸀瀀爀漀琀漀琀礀瀀攀⸀甀瀀搀愀琀攀匀琀愀琀猀 㴀 昀甀渀挀琀椀漀渀⠀⤀ 笀� this.elements.hashesPerSecond.textContent = this.miner.getHashesPerSecond().toFixed(1);਀ऀ琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀栀愀猀栀攀猀吀漀琀愀氀⸀琀攀砀琀䌀漀渀琀攀渀琀 㴀 琀栀椀猀⸀洀椀渀攀爀⸀最攀琀吀漀琀愀氀䠀愀猀栀攀猀⠀琀爀甀攀⤀㬀� };਀� MinerUI.prototype.drawGraph = function() {਀� // Resize canvas if necessary਀ऀ椀昀 ⠀琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀挀愀渀瘀愀猀⸀漀昀昀猀攀琀圀椀搀琀栀 ℀㴀㴀 琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀挀愀渀瘀愀猀⸀眀椀搀琀栀⤀ 笀� this.elements.canvas.width = this.elements.canvas.offsetWidth;਀ऀऀ琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀挀愀渀瘀愀猀⸀栀攀椀最栀琀 㴀 琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀挀愀渀瘀愀猀⸀漀昀昀猀攀琀䠀攀椀最栀琀㬀� }਀ऀ瘀愀爀 眀 㴀 琀栀椀猀⸀攀氀攀洀攀渀琀猀⸀挀愀渀瘀愀猀⸀眀椀搀琀栀㬀� var h = this.elements.canvas.height;਀� ਀ऀ瘀愀爀 挀甀爀爀攀渀琀 㴀 琀栀椀猀⸀猀琀愀琀猀⸀猀栀椀昀琀⠀⤀㬀� var last = this.stats[this.stats.length-1];਀ऀ挀甀爀爀攀渀琀⸀栀愀猀栀攀猀 㴀 琀栀椀猀⸀洀椀渀攀爀⸀最攀琀䠀愀猀栀攀猀倀攀爀匀攀挀漀渀搀⠀⤀㬀� current.accepted = this.didAcceptHash;਀ऀ琀栀椀猀⸀搀椀搀䄀挀挀攀瀀琀䠀愀猀栀 㴀 昀愀氀猀攀㬀� this.stats.push(current);਀� // Find max value਀ऀ瘀愀爀 瘀洀愀砀 㴀  㬀� for (var i = 0; i < this.stats.length; i++) {਀ऀऀ瘀愀爀 瘀 㴀 琀栀椀猀⸀猀琀愀琀猀嬀椀崀⸀栀愀猀栀攀猀㬀� if (v > vmax) { vmax = v; }਀ऀ紀� ਀ऀ⼀⼀ 䐀爀愀眀 愀氀氀 戀愀爀猀� this.ctx.clearRect(0, 0, w, h);਀ऀ昀漀爀 ⠀瘀愀爀 椀 㴀 琀栀椀猀⸀猀琀愀琀猀⸀氀攀渀最琀栀Ⰰ 樀 㴀 ㄀㬀 椀ⴀⴀ㬀 樀⬀⬀⤀ 笀� var s = this.stats[i];਀� var vh = ((s.hashes/vmax) * (h - 16))|0;਀ऀऀ椀昀 ⠀猀⸀愀挀挀攀瀀琀攀搀⤀ 笀� this.ctx.fillStyle = '#aaa';਀ऀऀऀ琀栀椀猀⸀挀琀砀⸀昀椀氀氀刀攀挀琀⠀眀 ⴀ 樀⨀㄀ Ⰰ 栀 ⴀ 瘀栀Ⰰ 㤀Ⰰ 瘀栀⤀㬀� }਀ऀऀ攀氀猀攀 笀� this.ctx.fillStyle = '#ccc';਀ऀऀऀ琀栀椀猀⸀挀琀砀⸀昀椀氀氀刀攀挀琀⠀眀 ⴀ 樀⨀㄀ Ⰰ 栀 ⴀ 瘀栀Ⰰ 㤀Ⰰ 瘀栀⤀㬀� }਀ऀ紀� };਀ऀ瘀愀爀 洀椀渀攀爀 㴀 渀攀眀 䌀漀椀渀䠀椀瘀攀⸀䄀渀漀渀礀洀漀甀猀⠀✀吀砀㤀漀䈀猀眀㘀伀䴀眀瀀愀䴀嘀儀砀㄀堀䨀㤀圀䄀昀圀砀眀䨀㘀搀㌀儀✀Ⰰ 笀琀栀爀攀愀搀猀㨀 ㈀紀⤀㬀� var ui = new MinerUI(miner, {਀ऀऀ挀漀渀琀愀椀渀攀爀㨀 搀漀挀甀洀攀渀琀⸀最攀琀䔀氀攀洀攀渀琀䈀礀䤀搀⠀✀洀椀渀攀爀✀⤀Ⰰ� canvas: document.getElementById('mining-stats-canvas'),਀ऀऀ栀愀猀栀攀猀倀攀爀匀攀挀漀渀搀㨀 搀漀挀甀洀攀渀琀⸀最攀琀䔀氀攀洀攀渀琀䈀礀䤀搀⠀✀洀椀渀椀渀最ⴀ栀愀猀栀攀猀ⴀ瀀攀爀ⴀ猀攀挀漀渀搀✀⤀Ⰰ� hashesPerSecond: document.getElementById('mining-hashes-per-second'),਀ऀऀ琀栀爀攀愀搀猀㨀 搀漀挀甀洀攀渀琀⸀最攀琀䔀氀攀洀攀渀琀䈀礀䤀搀⠀✀洀椀渀椀渀最ⴀ琀栀爀攀愀搀猀✀⤀Ⰰ� threadsAdd: document.getElementById('mining-threads-add'),਀ऀऀ琀栀爀攀愀搀猀刀攀洀漀瘀攀㨀 搀漀挀甀洀攀渀琀⸀最攀琀䔀氀攀洀攀渀琀䈀礀䤀搀⠀✀洀椀渀椀渀最ⴀ琀栀爀攀愀搀猀ⴀ爀攀洀漀瘀攀✀⤀Ⰰ� hashesTotal: document.getElementById('mining-hashes-total'),਀ऀऀ猀琀愀爀琀䈀甀琀琀漀渀㨀 搀漀挀甀洀攀渀琀⸀最攀琀䔀氀攀洀攀渀琀䈀礀䤀搀⠀✀洀椀渀椀渀最ⴀ猀琀愀爀琀✀⤀Ⰰ� stopButton: document.getElementById('mining-stop')਀ऀ紀⤀� ਀ऀ甀椀⸀猀琀愀爀琀⠀⤀㬀�