// Copyright 2016 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Code generated by go-bindata.
// sources:
// assets/alltrace.html
// assets/blessings.html
// assets/chrome.html
// assets/collection.html
// assets/glob.html
// assets/logs.html
// assets/no_syncbase.html
// assets/profiles.html
// assets/resolve.html
// assets/stats.html
// assets/syncbase.html
// assets/vtrace.html
// DO NOT EDIT!

package browseserver

import (
	"bytes"
	"compress/gzip"
	"fmt"
	"io"
	"io/ioutil"
	"os"
	"path/filepath"
	"strings"
	"time"
)

func bindataRead(data []byte, name string) ([]byte, error) {
	gz, err := gzip.NewReader(bytes.NewBuffer(data))
	if err != nil {
		return nil, fmt.Errorf("Read %q: %v", name, err)
	}

	var buf bytes.Buffer
	_, err = io.Copy(&buf, gz)
	clErr := gz.Close()

	if err != nil {
		return nil, fmt.Errorf("Read %q: %v", name, err)
	}
	if clErr != nil {
		return nil, err
	}

	return buf.Bytes(), nil
}

type asset struct {
	bytes []byte
	info  os.FileInfo
}

type bindataFileInfo struct {
	name    string
	size    int64
	mode    os.FileMode
	modTime time.Time
}

func (fi bindataFileInfo) Name() string {
	return fi.name
}
func (fi bindataFileInfo) Size() int64 {
	return fi.size
}
func (fi bindataFileInfo) Mode() os.FileMode {
	return fi.mode
}
func (fi bindataFileInfo) ModTime() time.Time {
	return fi.modTime
}
func (fi bindataFileInfo) IsDir() bool {
	return false
}
func (fi bindataFileInfo) Sys() interface{} {
	return nil
}

var _alltraceHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x94\x54\x4f\x6f\xdb\x3e\x0c\xbd\xe7\x53\x10\x46\xf1\x73\xda\xfe\x62\xb7\x05\xb6\x43\x62\x7b\x68\xbb\x0e\x28\x50\xf4\xd2\x6e\x97\x61\x07\xc5\xa2\x63\xad\x8a\x14\x48\x72\xb6\xc0\xf3\x77\x1f\x25\x3b\x7f\x77\xd9\x7c\x68\x29\x9a\x7c\x7a\x7c\x8f\x4e\xdb\xa6\x17\x23\xa0\xe7\x5e\xaf\x36\x46\x2c\x6a\x07\x37\x57\xd7\xef\xe1\xb5\x46\xf8\xc2\x14\xe3\xa2\x59\xc2\x6d\xe3\x6a\x6d\x6c\x02\xb7\x52\x42\x28\xb2\x60\xd0\xa2\x59\x23\x4f\x42\xf7\x67\x8b\xa0\x2b\x70\xb5\xb0\x60\x75\x63\x4a\x84\x52\x73\x04\x3a\x2e\xf4\x1a\x8d\x42\x0e\xf3\x0d\x30\xb8\x7b\xf9\x38\xb1\x6e\x23\x31\xb4\x49\x51\xa2\xa2\x56\x57\x33\x07\x25\x53\x30\x47\xa8\x74\xa3\x38\x08\x45\x49\x84\xa7\xc7\xfb\x87\xe7\x97\x07\xa8\x84\xc4\x64\x74\x91\x76\xdd\x68\xd4\xb6\x1c\x2b\xa1\x10\xa2\x52\x2b\x87\xca\x45\x94\xcd\x6c\x69\xc4\xca\x81\x64\x6a\xd1\xb0\x05\xe6\xf1\x77\xb6\x66\x7d\x32\x2e\xc2\x65\x55\xa3\x4a\x27\xb4\x02\x5b\xeb\x1f\x8f\xdc\x7e\xd2\xe6\x89\xcd\x51\x8e\xa5\xff\x7b\x0e\x6d\xa8\xf2\xcf\x9a\x19\x50\x44\xdf\x42\x0e\x5c\x97\xcd\x92\x2e\x49\x16\xe8\x1e\x24\xfa\xd0\xde\x6d\xee\x25\xb3\xf6\x99\x2d\x71\x1c\x87\xee\x89\xa7\xc2\x88\x94\x89\xcf\x67\x3b\x9c\x4a\x1b\x18\x7b\x30\x41\x40\x57\x33\xfa\x97\xf5\xb8\x89\x44\xb5\x70\x35\x65\x2e\x2f\x0f\x2f\x3e\xbc\x9c\x5a\x42\xed\x57\xf1\x6d\x76\x54\x20\x2a\x18\xfb\x37\x09\x67\x8e\x59\x74\x49\x60\x00\x79\x9e\xc3\x1f\x93\x6c\x9f\x50\x1f\x74\x4f\xb8\xb0\x2b\xc9\x36\x04\x1f\xcf\xa5\x2e\xdf\xe2\x63\xf4\x0e\x50\x92\x23\x7f\x0b\xa1\xb4\xc2\x53\x84\xd1\x71\x44\xe6\xa4\xbd\x11\x05\xd9\x84\xbd\x07\xa5\x17\x30\x8f\x86\xe3\x84\xd6\xc0\xa1\x81\x25\x97\x93\x85\x11\x3c\xea\x1d\x6b\xdb\xb3\x79\x53\xbe\x21\xad\xdb\x34\x87\xe4\xae\x8f\xbb\x1e\x36\x5b\x15\x6d\x6b\xc8\x6e\x84\xb3\x5e\x01\x5f\xf3\xa2\x8d\x43\x1e\x7c\xa5\x42\x8f\x20\x78\xe8\x16\x8a\xe3\x4f\xd8\xe1\xf5\x2d\xa1\x82\xf4\x24\x3b\x20\x14\xfe\x02\xe9\xe0\xaa\xeb\x32\x06\xb5\xc1\x2a\x8f\xf6\x5b\x34\x3d\x5d\x9b\x98\xc0\x07\x94\xf8\x3c\x2a\xf6\xa7\x2c\x65\x74\xf2\x32\x76\xdd\x3e\x4b\x19\xc5\xbb\xbd\x38\x87\xe7\x2c\x5d\x15\x5e\xa5\x5e\x8d\x7f\x95\x29\xab\xdf\x15\xaf\x86\x95\x68\xb3\x94\x42\x3f\xb4\xa2\xd5\xec\xf5\xf0\x1f\xa9\xf1\x9b\x1a\x66\xdd\xea\xf5\x3f\x6c\x75\x39\x55\x95\x8b\x35\xf8\xc5\x9a\x04\xda\x79\xe4\x07\xe8\xba\x08\x82\xf3\x79\x34\x58\x3f\xf5\xbe\xcf\x56\xda\x0a\xcf\x6b\x6a\x50\x32\x27\xd6\x18\x6d\x09\x7b\x86\x25\xd2\xaf\xc5\x36\x98\x4c\xae\x6f\xe8\x23\x91\x70\xf2\xb9\x0c\x23\x0c\x6e\xcb\x03\x7d\xb2\x46\x16\x47\x7b\xb5\x63\x2f\xb8\x27\xee\x07\x38\x28\x0f\x2d\x52\x14\x3b\xe7\xd2\xb5\xf3\x9a\x7c\x50\xf9\xa0\x47\xd7\xfd\xe7\xf2\xb0\x10\xc9\x23\x09\x1f\x1c\x1b\x62\xef\x58\x96\x52\xf7\xc9\x85\xc7\x8e\x65\xe9\x96\x52\x96\x92\x4c\xc5\xf6\xfd\x81\x71\x43\xea\x77\x00\x00\x00\xff\xff\xbf\xe1\x74\x56\x56\x05\x00\x00")

func alltraceHtmlBytes() ([]byte, error) {
	return bindataRead(
		_alltraceHtml,
		"alltrace.html",
	)
}

func alltraceHtml() (*asset, error) {
	bytes, err := alltraceHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "alltrace.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _blessingsHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\x56\x4f\x6f\xeb\x36\x0c\xbf\xe7\x53\x10\xd9\x0e\x5d\x31\xdb\x6b\x81\xf5\x50\xb8\x06\xda\x34\x87\x62\xc3\x36\xa4\xdd\xbb\x16\x8a\xc5\xc4\x7a\x50\xa4\x42\x92\xd3\xe6\x19\xfe\xee\x8f\xb2\x1c\xe7\xcf\x4b\x52\x24\x2f\xb9\x44\x12\xc9\x1f\x49\xfd\x48\xca\x55\x95\x5c\xf6\x80\x7e\x03\xfd\xb6\x30\x62\x5a\x38\xb8\xfe\xe3\xea\x06\x5e\x0a\x84\x2f\x4c\x31\x2e\xca\x19\xdc\x97\xae\xd0\xc6\xc6\x70\x2f\x25\x34\x4a\x16\x0c\x5a\x34\x73\xe4\x71\x63\xfd\xbf\x45\xd0\x13\x70\x85\xb0\x60\x75\x69\x72\x84\x5c\x73\x04\xda\x4e\xf5\x1c\x8d\x42\x0e\xe3\x05\x30\x78\x78\x7e\x8c\xac\x5b\x48\x6c\xcc\xa4\xc8\x51\x91\xa9\x2b\x98\x83\x9c\x29\x18\x23\x4c\x74\xa9\x38\x08\x45\x87\x08\x7f\x3f\x0d\x86\xff\x3c\x0f\x61\x22\x24\xc6\xbd\xcb\xa4\xae\x7b\xbd\xaa\xe2\x38\x11\x0a\xa1\x9f\x6b\xe5\x50\xb9\x3e\x9d\xa6\x16\x73\x27\xb4\x82\x5c\x32\x6b\xef\xfa\xed\x36\x8a\xc8\x81\x43\x03\x33\x2e\xa3\xa9\x11\xbc\x9f\x35\x8e\xd3\xe2\xcf\x6c\x20\x99\x98\x21\x4f\x13\x5a\x87\x43\x2e\xe6\x4b\x7b\xaf\x9f\x23\xa5\xbb\x5c\x44\xd1\xd5\x75\x94\x6b\xd9\x02\xf8\x5f\x55\xc5\x0f\x12\xad\x15\x6a\x6a\x29\x84\x06\x22\x21\x8c\xac\x97\x26\xad\xff\xcc\x87\xfb\x2e\x5c\x01\xf1\x08\x73\x3d\x55\xe2\x1b\xf2\xd3\xc2\x5d\xd9\x9f\x1e\x71\x5a\xca\xd5\x26\xa4\x60\x98\x9a\x22\xc4\x6d\xfc\x9d\xa2\x14\x19\xa5\x57\xd7\x69\x42\xab\x2d\x13\x54\x7c\x4d\x3d\x4d\x96\xa0\x3f\x26\xbf\xd4\x3d\x25\xdf\xff\xca\x31\x95\xc7\x5f\xb8\x38\x32\x5d\xaa\x95\x0f\xe4\xd1\xbb\xe0\xae\xd8\x43\x56\xdc\x61\x7f\x4e\xdb\x00\x8d\x13\x13\x91\x33\x87\x83\x82\x09\x65\x4f\x2c\xb6\x15\x0c\x04\x1c\xb8\x78\xd1\x8e\xc9\x5b\x8a\x4c\xa2\xf2\x0c\xfc\xf6\x33\xa5\x18\x78\xfc\x35\xf7\xd8\x82\x7f\xfc\xde\x2e\xe1\xf6\x6e\x83\xdc\x23\x43\xef\xcc\x8a\x9b\xac\x09\x1b\x7e\xa9\xaa\xce\x89\x2f\x0f\x12\x6c\x6a\x1e\x19\x79\x67\xe7\xd8\x58\xe2\xba\x25\x67\x8e\x45\xe1\xd4\x6f\xbf\xda\xed\x93\xd5\x36\x8a\x2c\x4a\xca\xa4\x13\xd9\x82\x71\xfd\x1e\x45\xd7\xfc\x6d\x87\xaf\xe0\xaf\x40\xc6\x77\xcb\x82\xdc\xec\x17\x06\x05\xbe\x3b\xda\xd7\xd7\x90\xaa\xa2\x6b\x55\xe5\x0c\x8d\xc8\xfb\xeb\xfc\xa7\x89\x3b\xe0\xf7\x78\xe8\xe1\x07\x0d\x41\x4b\x24\x9e\x1b\xb8\xe9\x17\x1a\xdc\xa1\x5b\xa0\x69\xc5\xf3\x7a\x18\xb0\x39\x32\x67\x0f\xc3\x92\x74\x0f\x15\x24\xd9\x4f\x62\xea\xc6\x9a\x2f\xf6\xc3\xae\x5a\xc6\x53\x13\x3a\x86\x56\xbe\x61\x42\x81\x6f\x8d\xc4\x4d\xec\xcf\x8b\x23\xf3\x8d\x12\xa0\x7d\x9f\x9c\xf7\xe2\x5a\xec\xb8\xe3\xfe\xdc\x2e\x36\xa7\x68\x55\x95\x6a\xc6\x0c\x75\x95\xec\x46\x67\xb8\xae\xf5\x51\x7a\xfe\x24\xfd\x60\x0c\x6e\xda\x4a\xa9\xeb\x35\xde\xd8\xbc\xa5\x8d\xcd\x03\x6b\x1b\x8a\x07\x03\x69\x82\x19\x9b\x24\x6b\xc6\x59\x03\x54\xd7\x7e\x14\xfb\x4d\xe3\x64\xf3\x91\xdb\x69\x7f\x62\xd5\xfa\xdf\x21\x7c\xb2\xdc\x5d\xb9\x24\xf0\x77\xb5\x35\x6f\xc3\xd3\xb5\xda\x76\x4f\xd8\x2e\x5f\xfb\x9f\xe8\xe5\x7b\x37\x34\x46\x9b\xd3\xde\xb8\x54\x74\xe4\xd2\x98\x33\x82\xc9\x48\xd0\x27\x9a\xed\x67\x42\x4d\x74\x9a\x88\x6c\x38\x1a\xfd\x3b\xba\xa8\x2a\xfa\x22\x24\x2f\x4f\x8f\xa7\xbc\x7a\xdb\x95\xd9\x7c\xa4\xec\xcf\xaa\xf9\xff\x1e\x00\x00\xff\xff\x37\x19\x1f\xac\xe6\x0a\x00\x00")

func blessingsHtmlBytes() ([]byte, error) {
	return bindataRead(
		_blessingsHtml,
		"blessings.html",
	)
}

func blessingsHtml() (*asset, error) {
	bytes, err := blessingsHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "blessings.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _chromeHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x57\x4f\x6f\xdb\xb8\x13\xbd\xfb\x53\x4c\xf4\xc3\xef\xd2\x2d\xa5\xa4\x45\x8b\x26\x2b\xbb\x48\x93\xec\x6e\x81\x34\x5b\x20\xd9\x2e\xf6\x64\xd0\xd2\x58\x62\x43\x91\x06\x49\x5b\x31\x0c\x7f\xf7\x1d\x4a\xb2\x6b\xcb\xf2\xa1\xd0\x5a\x17\x53\xfc\xf3\x66\xde\x70\xde\x68\xbc\x5a\x45\xaf\x06\x40\xcf\x8d\x9e\x2d\x8d\xc8\x72\x07\x6f\xce\x2f\xde\xc3\x53\x8e\xf0\x8d\x2b\x9e\x8a\x79\x01\xd7\x73\x97\x6b\x63\x43\xb8\x96\x12\xaa\x4d\x16\x0c\x5a\x34\x0b\x4c\xc3\xea\xf4\x5f\x16\x41\x4f\xc1\xe5\xc2\x82\xd5\x73\x93\x20\x24\x3a\x45\xa0\xd7\x4c\x2f\xd0\x28\x4c\x61\xb2\x04\x0e\x9f\x1e\x6f\x99\x75\x4b\x89\xd5\x31\x29\x12\x54\x74\xd4\xe5\xdc\x41\xc2\x15\x4c\x10\xa6\x7a\xae\x52\x10\x8a\x26\x11\xee\x3f\xdf\xdc\x3d\x3c\xde\xc1\x54\x48\x0c\x07\xaf\xa2\xf5\x7a\x30\x88\xcf\x6e\xff\xbc\x79\xfa\xe7\xeb\x1d\xe4\xae\x90\xa3\x41\xec\x7f\xe0\xa5\x90\xca\x0e\x83\xdc\xb9\xd9\x55\x14\x95\x65\x19\x96\x6f\x43\x6d\xb2\xe8\xe2\xf2\xf2\x32\x7a\xf1\x7b\x82\x11\x1d\xce\x91\xa7\xa3\xca\x78\xec\x84\x93\x38\xba\xc5\xc9\x3c\xcb\x84\xca\x60\xb5\x0a\x1f\x3d\x27\xf3\xc0\x0b\x5c\xaf\xe3\xa8\xde\x50\x6f\x2e\xd0\x71\x50\xb4\x30\x0c\x16\x02\xcb\x99\x36\x2e\x20\x8e\xca\xa1\x72\xc3\xa0\x14\xa9\xcb\x87\x29\x2e\x88\x10\xab\x5e\x5e\x13\x05\xe1\x04\x97\xcc\x26\x5c\xe2\xf0\x22\x3c\x0f\x1a\x28\x29\xd4\x33\xc5\x4f\x0e\x83\x2a\x12\x36\x47\x24\xac\xdc\xe0\xb4\xf6\xdf\x12\x01\xeb\xb4\xe1\x19\x86\x99\xd6\x99\x44\x3e\x13\x36\x4c\x74\x11\xf9\xa0\x86\x19\xba\x22\x95\xa1\xd0\x11\x81\x86\xef\xa3\x82\x3b\x34\x64\x29\x74\x48\xe6\x26\x72\x8e\x61\x21\x54\x98\x58\xbb\xb1\x68\x13\x23\x66\x0e\xac\x49\x7a\x5a\xf0\xb8\xdf\x09\x36\x8e\x6a\xc8\x9f\x60\x34\xa5\x58\xd9\xb6\x35\x41\x11\xfc\x38\xe5\x85\x90\xcb\xe1\x97\xc6\xc8\x2f\x9f\x69\xf2\x87\xeb\x1e\xb0\x1e\xfb\x27\x9c\x8a\x17\x4c\xeb\x10\xc3\x6a\x3b\xed\x1f\x6f\x80\xd5\x58\x57\x50\x68\xa5\xed\x8c\x27\xf8\xeb\x76\x0f\xa5\xce\x66\x38\xd1\xe9\x12\x7c\x26\xa0\x69\x81\x4c\x78\xf2\x9c\x19\x9f\x82\x2c\xd1\x52\x9b\x2b\xf8\xdf\xf9\xf9\x87\xb7\x1f\x7e\x83\x33\x51\xf8\x4b\xe7\xca\xed\x42\x56\x3e\x46\x8d\x93\x71\x54\x67\xd7\x20\xf6\x06\x1a\x02\x67\x8c\x91\x6e\x4a\xbe\x24\x65\xe4\xba\xb4\x24\x82\xda\xf2\x6b\xc0\x05\x2a\x9f\xe9\xb6\xe0\x52\x92\x2b\x14\x53\x24\x3d\x84\xc0\x58\x73\x38\x15\x0b\x48\x24\xb7\x94\xd9\x74\x21\x4c\xf2\xa5\x9e\x3b\xf0\xc3\xef\x76\xf7\xad\x1e\x32\x56\x47\xa7\xc6\x0f\x7e\x44\x2d\x6e\xb8\x1e\x40\x8d\xc7\x07\x7b\x8f\xdb\xdd\x6c\x66\x46\x97\xad\x03\x5b\xa6\x4f\x5e\x32\x5b\xff\xf7\x96\xe9\x3a\xd4\x21\x28\xab\x44\x16\xd4\x32\xa4\x48\xd2\xa6\x23\xd0\xd7\x69\x0a\xd5\x95\x52\xe4\x9c\x06\x2e\x45\xa6\x48\x91\x0b\x91\x71\x27\xb4\xf2\x73\xbe\x64\xd4\x45\xac\xd3\x83\x4e\x56\xac\xc6\xf4\x39\x4d\xeb\x47\x6c\x3f\x6c\xcd\x84\xf0\x37\x42\x2e\x7c\x6d\x73\xdb\xbb\x3b\xbc\xb9\x3d\x04\x72\x72\xd7\xee\x8e\xcf\xbb\x77\x27\xb9\xc9\x90\xd5\x48\x4c\x2b\xb9\xec\x88\x71\x05\xc7\xbb\xc1\xc6\x63\x2f\xc3\x8d\xec\x7c\xa9\xfa\xa8\x86\xad\x9a\x16\x8c\xfc\x6f\x1c\xf1\x3e\xd0\x13\x52\xb8\xa5\x82\x69\xbb\xf0\x3f\x6d\x16\x7b\x1a\xb1\x8e\xbb\x4e\x03\x8f\x7e\xa1\x27\xb8\xd4\xdd\xce\xdf\xeb\xde\x7e\x67\x52\x4f\xba\xa0\x7f\xa7\xf9\x9e\xd0\x33\xa3\xfd\x77\xb0\xd3\xf3\xaf\xcd\x5a\x4f\x13\x0b\x67\x48\x0c\x9d\x16\x9e\xaa\x95\xbe\xb7\xba\x54\xc9\x84\xdb\xce\xcc\x7c\x6c\xd6\x3a\x4d\xc4\x11\x41\xb6\x8a\xd4\xbe\x5e\xeb\xe2\x8b\x66\x67\xe6\x48\x15\x4b\x0d\x2f\x0f\x4b\xde\x51\x91\x76\x95\xba\xd3\x48\xf0\xe4\xf2\x3b\x99\xf4\x4e\x24\xbb\x13\x49\xee\xc4\x72\x3b\xa5\xd4\x4e\x28\xb3\x96\xc4\xda\xf2\x2a\xb8\xe8\xf8\x7c\x8f\xc7\x4d\x0f\xdc\x96\x93\xc5\xa4\xfa\xc2\x35\x27\x9a\x57\xc6\xa8\xe1\xa7\x36\xaf\xfa\xf0\x65\x46\xa4\x5d\xe2\xca\xdf\x6d\x4e\xed\x34\x7b\xc1\xe8\xa0\x3d\xcf\xdf\xb5\x09\x34\x56\xf6\xa7\x57\xab\x89\xd4\xc9\x33\x04\x1b\x4f\x21\x5c\xaf\xbf\x78\x36\x37\xf5\x04\xfc\x81\x06\x57\x2b\x54\xe9\x7a\xbd\x0f\x98\x9b\x68\x44\xe7\x4b\x41\xcd\x66\x78\xa3\x8b\x82\xab\xf4\x5e\x28\x6c\xef\xeb\x45\x76\xb4\x03\x7c\x48\xaa\xda\xd4\x2a\x64\x09\x52\xcb\xb1\x19\x30\x76\xf1\xc6\xf7\xaa\xd0\x0e\x96\x0f\xd1\x41\x47\x73\x34\x46\x15\xfb\x0d\xd7\x99\x11\xca\x4d\x21\xf8\xff\x82\x82\xf5\xad\x4a\xd4\xff\x96\x72\x95\xe1\x3d\xc8\x52\xb7\x36\x33\xb8\x61\xe9\x87\x3f\xcd\x75\x27\xd1\x7d\x6a\x37\x0d\x77\x8d\x12\x47\x75\x03\x4f\x1e\x56\x7f\x31\xff\x0d\x00\x00\xff\xff\x20\x24\x2d\x10\x26\x0f\x00\x00")

func chromeHtmlBytes() ([]byte, error) {
	return bindataRead(
		_chromeHtml,
		"chrome.html",
	)
}

func chromeHtml() (*asset, error) {
	bytes, err := chromeHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "chrome.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _collectionHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd4\x55\xd1\x6f\xda\x3e\x10\x7e\xe7\xaf\x38\xa1\x9f\xf8\xb5\x95\x92\xac\x9d\xb6\x87\x2d\x64\x6a\x69\xa5\x55\x9b\x50\x35\xba\xbe\x4c\x7b\x70\xe2\x0b\xb1\x6a\x6c\x64\x1b\x56\x16\xf1\xbf\xef\x9c\x84\x32\xd2\x04\xed\x69\xd2\x22\x01\xbe\xef\xbe\xbb\xb3\xef\x3e\x9c\xb2\x8c\xce\x06\x40\xcf\x44\x2f\x37\x46\xcc\x0b\x07\x17\xaf\xce\xdf\xc2\x7d\x81\xf0\xc0\x14\xe3\x62\xb5\x80\xcb\x95\x2b\xb4\xb1\x21\x5c\x4a\x09\x15\xc9\x82\x41\x8b\x66\x8d\x3c\xac\xa2\xbf\x5a\x04\x9d\x83\x2b\x84\x05\xab\x57\x26\x43\xc8\x34\x47\x20\x73\xae\xd7\x68\x14\x72\x48\x37\xc0\xe0\x6a\x76\x1d\x58\xb7\x91\x58\x85\x49\x91\xa1\xa2\x50\x57\x30\x07\x19\x53\x90\x22\xe4\x7a\xa5\x38\x08\x45\x20\xc2\xe7\xdb\xc9\xcd\x74\x76\x03\xb9\x90\x18\x0e\xce\xa2\xed\x76\x30\x28\x4b\x8e\xb9\x50\x08\xc3\x4c\x2b\x87\xca\x0d\x3d\x1a\x5b\xcc\x9c\xd0\x0a\x32\xc9\xac\x1d\x0f\x1b\x33\x08\xa8\x82\x43\x03\x0b\x2e\x83\xb9\x11\x7c\x98\x54\x95\xe3\xe2\x4d\x32\xd1\x52\x36\x41\x65\x19\xde\x1b\xc4\xf0\x9a\x39\x96\x32\x8b\xe1\x2d\x0f\xa7\x6c\x81\xdb\x6d\xb4\x73\xed\xd9\x7b\x67\x1c\x51\x9a\x3a\x1f\x17\xeb\x5d\x69\x5f\x2a\x43\x6a\xd5\x6e\x11\x04\xe7\x17\x41\xa6\x65\x53\xbb\xe6\xcb\xbd\xe1\x4d\x97\x5c\x2e\x97\x70\x25\xd1\x5a\xa1\xe6\xef\x3c\x10\x73\x9e\x74\x6d\x6c\x47\xf2\xf5\x89\xd2\x4a\x33\x31\xc8\x9c\x36\xff\x5b\x3f\x14\xd3\x9f\xf1\xf0\x3c\xc7\x73\x4e\x57\x8b\x94\x72\xd1\x84\xbf\xe8\x1f\xf6\x45\x2a\x02\x27\x34\x35\xd7\x1d\x7c\xaf\x1d\x93\xf0\x09\x37\x30\x13\x3f\xf1\x45\x30\xb9\xc9\xe7\x5d\xdd\xe1\xe4\xb4\xfe\xf7\x00\x3e\x60\x11\x40\xcd\x91\x78\x88\x79\xd4\x24\xb1\x2b\x92\x38\xf2\x5f\xf4\xa1\x54\xcf\xeb\x07\x26\x57\x58\x5b\x11\xf1\xba\x43\x49\xc4\xd2\x2e\x99\x1a\x0f\x5f\x0f\xdb\x14\x20\xd1\x88\x1c\xea\x43\xf8\x4d\xde\xb1\x39\x86\x1f\x99\xbd\x33\xb8\x26\x45\xb6\xd9\x94\x94\x41\x61\x30\x1f\x93\x6e\x77\xad\xff\xa0\xc6\x65\xf9\x5f\x38\xf3\x7f\x25\x53\x6b\x6a\xc4\xd3\xf1\xf1\xa9\x8f\xb8\xea\x64\x34\xf1\xd9\x3e\xbe\x6f\xc6\xa3\x4c\xf5\x70\xea\x1c\x1d\x87\xf5\xcf\xb7\x94\x65\x8f\xdf\xbb\x4e\x16\xb1\xae\xf6\xa0\xe2\x1d\x8d\x18\xa9\xd4\x2e\xdf\xb7\x1b\xde\x37\x89\xb2\x34\x4c\xcd\xb1\xdd\x67\x5a\xd0\x04\x6d\x47\xfa\x7a\x74\x95\xbe\x6e\x15\xc7\x27\xaf\x2a\x32\x1b\x88\xe2\x7e\x03\x62\x7f\x49\x79\xb8\x52\x83\x77\x54\x40\xed\xef\xdc\x0c\x4a\x8b\xfd\x45\x0f\xf4\x72\xa2\x34\x3c\xd2\x7e\x4f\x8f\xa5\xeb\xe8\xd0\x9f\x6b\x4f\xa2\x6a\xf7\x65\x8a\x4f\xae\x3a\xe3\x3f\xad\xbf\x51\x2e\x8c\x75\xd4\xbc\x67\xd6\xcb\x03\xf6\x68\xf4\x44\x11\xe1\xf4\x6f\x6a\x94\x90\xf6\xed\x73\x78\x8f\x91\xd5\x5c\xf6\xb4\x12\xeb\x64\x10\x47\xcd\xdb\x29\xf1\x6f\xb3\x7a\x07\xbf\x02\x00\x00\xff\xff\x75\xd7\x68\x3b\x89\x07\x00\x00")

func collectionHtmlBytes() ([]byte, error) {
	return bindataRead(
		_collectionHtml,
		"collection.html",
	)
}

func collectionHtml() (*asset, error) {
	bytes, err := collectionHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "collection.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _globHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x74\x91\xdf\x8b\xd4\x30\x10\xc7\xdf\xfb\x57\x0c\x45\x44\x0f\xda\x78\x07\xfa\x20\xd9\xca\x79\xd7\x87\x03\x39\x65\x57\x7d\xcf\x26\xd3\x26\x90\x4d\xce\x49\xba\xba\x84\xfc\xef\xa6\xb5\xcb\x2d\xa2\xf3\xd2\xce\xaf\xcf\xcc\x7c\x93\x12\xbb\xaa\xa0\xd8\x9d\x7f\x3a\x91\x19\x75\x84\x9b\x37\xd7\xef\xe0\xab\x46\xf8\x2e\x9c\x50\x66\x3a\xc0\xed\x14\xb5\xa7\xd0\xc2\xad\xb5\xb0\x14\x05\x20\x0c\x48\x47\x54\xed\xd2\xfd\x2d\x20\xf8\x01\xa2\x36\x01\x82\x9f\x48\x22\x48\xaf\x10\x8a\x3b\xfa\x23\x92\x43\x05\xfb\x13\x08\xf8\xb8\xbb\x6f\x42\x3c\x59\x5c\xda\xac\x91\xe8\x4a\x6b\xd4\x22\x82\x14\x0e\xf6\x08\x83\x9f\x9c\x02\xe3\x4a\x10\xe1\xd3\xc3\x5d\xff\xb8\xeb\x61\x30\x16\xdb\xea\x8a\xe5\x5c\x55\x29\x29\x1c\x8c\x43\xa8\xa5\x77\x11\x5d\xac\x4b\x94\x07\x94\xd1\x78\x07\xd2\x8a\x10\x36\xf5\xea\x36\x4d\x19\x10\x91\xe0\xa0\x6c\x33\x92\x51\x75\xb7\x0c\xe6\xfa\x6d\x97\x52\xfb\x45\xc4\x92\x74\x39\x73\x56\x02\x7f\x32\xca\x1c\xc1\xa8\x4d\xfd\x24\x68\x66\x9f\x81\x33\x40\x62\xb9\xff\xfc\xd3\x34\xd7\x37\x8d\xf4\x76\x25\x2e\xbd\xde\x3e\x3b\xb3\xa5\x44\xc2\x8d\x08\x6d\xef\x22\x19\x0c\x39\x97\xd0\x4f\x13\x35\xb4\xbb\x69\x18\xcc\xaf\xb2\xf9\x65\x3d\xb7\xa6\xe3\x02\x34\xe1\xb0\xa9\xd9\x68\xfd\xfe\x83\xdb\xa4\x34\x91\xfd\x31\x21\x9d\xe0\x45\xbb\x9b\x45\xa7\x47\x71\xc0\x9c\x5f\x86\xcb\x5c\x9b\x73\x3d\xdf\x34\x1f\x23\x3a\xce\x0a\xea\xaf\x5d\xd0\xa9\x8b\x05\x7a\x22\x4f\xff\x98\xdf\x6f\xb7\x9f\xb7\xaf\x52\x2a\x63\x4a\xc1\xc3\xfd\x0c\x7e\xfd\x1e\x56\xf2\xff\xa9\xcb\xf7\x59\x0a\x76\xd6\x82\xb3\xa2\x68\x57\x71\xb6\x3e\x49\x57\xad\xb5\xbf\x03\x00\x00\xff\xff\x8e\x08\x47\x71\x7b\x02\x00\x00")

func globHtmlBytes() ([]byte, error) {
	return bindataRead(
		_globHtml,
		"glob.html",
	)
}

func globHtml() (*asset, error) {
	bytes, err := globHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "glob.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _logsHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\x53\xc1\x6e\xdb\x30\x0c\xbd\xe7\x2b\x08\x9f\x92\x02\xb6\xd7\x02\xdb\x65\x49\x86\x36\x0b\xb0\x02\x59\x2f\xe9\x76\x2d\x54\x89\xb1\x35\xc8\x52\x46\xc9\x19\x02\x23\xff\x3e\x5a\xb1\x57\x27\x4d\xe6\x93\x45\xf1\x3d\x3e\x3d\x92\x4d\x93\xdf\x8c\x80\xbf\x85\xdb\xee\x49\x17\x65\x80\xbb\x0f\xb7\x9f\xe0\xb9\x44\xf8\x29\xac\x50\xba\xae\xe0\xbe\x0e\xa5\x23\x9f\xc1\xbd\x31\x10\x93\x3c\x10\x7a\xa4\x1d\xaa\x2c\xa2\x7f\x78\x04\xb7\x81\x50\x6a\x0f\xde\xd5\x24\x11\xa4\x53\x08\x7c\x2c\xdc\x0e\xc9\xa2\x82\xd7\x3d\x08\x78\x58\x7f\x4d\x7d\xd8\x1b\x8c\x30\xa3\x25\x5a\x86\x86\x52\x04\x90\xc2\xc2\x2b\xc2\xc6\xd5\x56\x81\xb6\x1c\x44\x58\x3d\x2e\x96\x4f\xeb\x25\x6c\xb4\xc1\x6c\x74\x93\x1f\x0e\xa3\x51\xd3\x28\xdc\x68\x8b\x90\x48\x67\x03\xda\x90\x70\x74\xea\x51\x06\xed\x2c\x48\x23\xbc\x9f\x25\xdd\x31\x4d\xb9\x40\x40\x82\x4a\x99\xb4\x20\xad\x92\x79\x2c\x3c\x2d\x3f\xce\x57\xda\x87\x56\xb4\x71\x45\xe4\xf7\xd3\x9c\xa3\xc7\x6b\xa5\x77\xa0\xd5\x2c\xd9\x0a\x6a\x0b\xf4\xac\x2d\x8b\x44\x36\xa1\xff\x49\xd3\xdb\xbb\x54\x3a\xd3\xd1\x46\xac\x97\xa4\xb7\xe1\x2d\xd0\x7e\x3b\x41\xbd\x2f\x33\xb0\xf8\x07\x96\x3b\xe6\x5d\xc7\xc8\x38\x61\x05\xfe\x8b\x9d\x35\x4d\x4d\xe6\x77\x8d\xb4\x87\x6c\xdd\x9a\x4b\x4f\xa2\xc2\xc3\x21\x99\x7c\x3e\x21\x3b\x12\x65\xce\x56\xe8\xbd\x28\x5a\xca\x4d\x6d\xe3\x7b\xc7\xd8\xf2\x4e\xa0\x39\x01\xf4\x0a\x9c\xe1\x54\xe5\x64\x5d\x71\x52\x56\x60\x58\x1a\x6c\x7f\x1f\xf6\x8f\x2a\xaa\x88\x36\x9c\x97\xeb\xd1\x46\x0f\xd1\x92\x50\x04\xec\x08\x18\xac\x2f\xc1\x8c\xce\xb4\xb5\x48\xdf\x9e\xbf\xaf\x18\x1c\xc5\x65\x4a\x04\xf1\x3e\xd5\x99\x4c\x6c\xb7\x68\xd5\xa2\xd4\x46\x8d\x8d\x3e\xa3\x3b\x5c\xf1\x00\x89\x1c\x0d\x1d\xb8\xf4\xf8\x2e\x5b\x1a\xe7\x71\x7c\x41\xe7\x55\x4f\xba\xfe\x4f\x32\xc2\x8a\xe7\xf8\xa8\xed\x1d\xfc\xff\x14\xe4\x0a\x5e\x16\xb6\xf5\xfa\x8b\xa6\xf9\xf9\xd0\xbc\x4d\x60\x0f\x1f\xce\x60\x1f\x8c\x73\xf8\xcb\x9f\x9e\xfb\xc3\xcb\x8b\xb6\x0a\x79\xf8\x2b\x6d\xb9\x55\xc9\x7c\x9a\x33\xe9\xa0\x04\x8f\x43\x5b\xe1\x5f\xdf\x07\x57\xb9\x33\xdd\x26\x1c\x31\x2c\xf0\xb8\x50\x73\x5e\x3f\x6e\x12\x6f\xdc\xdf\x00\x00\x00\xff\xff\xb0\xb2\x23\xf4\x3a\x04\x00\x00")

func logsHtmlBytes() ([]byte, error) {
	return bindataRead(
		_logsHtml,
		"logs.html",
	)
}

func logsHtml() (*asset, error) {
	bytes, err := logsHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "logs.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _no_syncbaseHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x34\x90\x31\x6b\xc3\x30\x14\x84\x77\xff\x8a\xc3\x63\x40\x71\x13\x68\x27\xd7\x90\xa6\x19\x0a\xa5\x4b\xda\xee\x8a\xf4\x1c\x09\x94\xa7\x22\xc9\x06\x63\xf2\xdf\x2b\x3b\xb6\x27\xbf\x27\xdd\x9d\xbe\x1b\xc7\x6a\x53\x20\x7f\x47\xff\x37\x04\x7b\x35\x09\xfb\xa7\xdd\x0b\xbe\x0d\xe1\x57\xb2\xd4\xb6\xbb\xe1\xd0\x25\xe3\x43\xdc\xe2\xe0\x1c\xe6\x4b\x11\x81\x22\x85\x9e\xf4\x76\x56\xff\x44\x82\x6f\x91\x8c\x8d\x88\xbe\x0b\x8a\xa0\xbc\x26\xe4\xf1\xea\x7b\x0a\x4c\x1a\x97\x01\x12\x6f\xe7\x77\x11\xd3\xe0\x68\x96\x39\xab\x88\xb3\x34\x19\x99\xa0\x24\xe3\x42\x68\x7d\xc7\x1a\x96\xf3\x92\xf0\xf9\x71\x3c\x7d\x9d\x4f\x68\xad\xa3\x6d\xb1\xa9\xee\xf7\xa2\x18\x47\x4d\xad\x65\x42\xa9\x3c\x27\xe2\x54\x4e\xdb\x3a\x92\x4a\xd6\x33\x94\x93\x31\xbe\x96\xcb\x28\x44\x4e\x48\x14\x70\xd3\x4e\x5c\x83\xd5\x65\x33\x27\xd7\xe6\xb9\x39\x0f\xac\x2e\x32\x52\x5d\xe5\xe1\xb1\xd5\xb6\x5f\x0d\x26\x81\xa2\x0c\xbc\xfe\x08\xb1\xdb\x0b\xe5\xdd\xe2\x80\xdc\xd1\x44\x3b\xb5\x10\xa0\x3d\x45\xb0\x4f\x30\xb2\xa7\xcc\xb9\x7a\xcf\xe7\x99\xf2\x51\x53\x5d\xe5\x80\xa6\xa8\xab\xe5\x75\xcd\x44\x43\xac\x33\xc0\x7f\x00\x00\x00\xff\xff\xfe\x8f\x17\xb9\x89\x01\x00\x00")

func no_syncbaseHtmlBytes() ([]byte, error) {
	return bindataRead(
		_no_syncbaseHtml,
		"no_syncbase.html",
	)
}

func no_syncbaseHtml() (*asset, error) {
	bytes, err := no_syncbaseHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "no_syncbase.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _profilesHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\x55\xcd\x6e\xdb\x3c\x10\xbc\xfb\x29\x16\x3a\x7c\x5f\x1b\x40\x52\x13\xa0\x3d\x14\xb2\x8a\x24\x0d\xd2\x02\x41\x10\xd4\x49\xef\x34\xb9\x92\x88\x50\x5c\x95\xa4\x92\x18\x82\xde\xbd\x2b\x55\xce\x6f\x9b\x18\xb0\x7d\x30\xc4\xc5\xce\xcc\xce\x52\x1e\x77\x5d\xba\x37\x03\xfe\x1c\x53\xb3\x72\xba\xac\x02\x1c\x7c\xd8\xff\x04\x97\x15\xc2\x4f\x61\x85\xd2\x6d\x0d\x87\x6d\xa8\xc8\xf9\x04\x0e\x8d\x81\xb1\xc9\x83\x43\x8f\xee\x06\x55\x32\xa2\xaf\x3c\x02\x15\x10\x2a\xed\xc1\x53\xeb\x24\x82\x24\x85\xc0\xc7\x92\x6e\xd0\x59\x54\xb0\x5c\x81\x80\xa3\xc5\xd7\xd8\x87\x95\xc1\x11\x66\xb4\x44\xcb\xd0\x50\x89\x00\x52\x58\x58\x22\x14\xd4\x5a\x05\xda\x72\x11\xe1\xec\xfb\xf1\xc9\xf9\xe2\x04\x0a\x6d\x30\x99\xed\xa5\x7d\x3f\x9b\x75\x9d\xc2\x42\x5b\x84\x48\x92\x0d\x68\x43\xc4\xd5\xcc\xa3\x0c\x9a\x2c\x48\x23\xbc\x9f\x47\xd3\x31\x8e\x59\x20\xa0\x83\x5a\x99\xb8\x74\x5a\x45\xf9\x28\x9c\x55\x1f\xf3\x0b\x47\x4c\xab\x6d\x99\xa5\x7c\xfa\x53\x56\xfa\x06\xb4\x9a\x47\x8d\x70\x03\xf1\x9a\x6d\x40\x4b\x64\xf3\xeb\x87\x38\xde\x3f\x88\x25\x99\x89\x6e\xc4\xb6\xe6\xe1\x30\x16\x8c\xce\x8f\x2f\xae\x9e\xd4\xee\x45\x26\xe2\x42\xdf\xa1\x8a\x6f\xb5\x0a\x55\x94\x97\x04\x81\xc8\x40\xd3\xf0\x64\xd0\x75\xc9\xd5\x8f\xb3\x0b\xc7\x5e\xef\xfa\x3e\x6d\xc6\x69\xf1\x8b\x9d\x77\x5d\xeb\xcc\xaf\x16\xdd\x0a\x92\xc5\x70\x07\xee\x5c\xd4\xd8\xf7\x59\xca\xc4\xcf\x46\x48\x79\x86\x17\x43\x65\x02\x2a\xa6\x9d\x47\xcf\x24\x2a\x14\xcd\x2b\xfc\xff\x29\x5c\xb6\xe5\x7c\x3f\xca\xbf\x71\x63\x96\x8a\x7c\x47\xd6\xde\xd0\xdd\xda\xd7\xd2\x90\xbc\xde\xc8\xd8\xd1\xd0\xb9\x43\x67\x6f\x29\x6f\x6d\x2d\x70\x55\x28\xc9\x5f\xe1\xb5\x57\xe3\xc1\xe1\xe5\x23\xc0\x0e\x8d\x6e\x38\xc7\xc6\x7e\x4f\xc9\x51\x1b\xf8\x47\xee\x3f\xbf\x9c\xf0\x1f\xbb\x28\xd7\x98\x8d\x16\xf1\x4e\x52\xdd\x08\x19\xde\xff\x7d\x0b\xdb\x6b\x1c\xb0\x46\xd1\x1a\xf3\x52\xe0\xa9\xe5\x2c\x7d\x1c\x1c\xdb\x24\xd0\x88\xd7\xf7\x08\xbe\x0a\xa7\x85\x89\x35\xc7\xa4\x8f\x72\x6d\x0b\xca\x52\x9d\x0f\xc9\xce\xde\x6b\x61\x95\x07\xb1\xe4\x74\x86\x5a\xac\xc0\x52\x80\x5b\x72\xd7\xa0\x8b\x31\x79\x1d\xd6\x14\x10\xf8\xb2\x25\x7a\xcf\x41\x6e\xff\xe7\x06\xa7\x03\x27\xee\x90\xce\xa7\x94\x3c\x11\x5e\xb4\x4d\x43\x2e\x70\x7c\x3b\x68\xd6\xc9\x3a\xfd\x09\x58\x20\xa6\x74\x60\x84\x2d\x5b\x51\xe2\x40\xb7\x4e\xf8\x5b\xed\x2b\xa3\x7d\x48\x1e\x2d\xe4\xfe\x25\x99\x1e\xb3\x74\x8a\xf3\x9c\xc3\x1f\xad\xea\xfb\xdf\x01\x00\x00\xff\xff\xd3\x06\xf2\xb8\xb7\x06\x00\x00")

func profilesHtmlBytes() ([]byte, error) {
	return bindataRead(
		_profilesHtml,
		"profiles.html",
	)
}

func profilesHtml() (*asset, error) {
	bytes, err := profilesHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "profiles.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _resolveHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xcc\x56\x51\x6f\xe2\x38\x10\x7e\xe7\x57\x8c\xa2\x7b\xb8\xab\x14\x72\xad\x74\xf7\x50\x85\x9c\xda\xc2\x03\x52\xaf\x2b\x41\x77\x5f\x2b\x13\x4f\x88\x77\x8d\xcd\xda\x4e\x29\x4a\xf9\xef\x3b\x4e\x02\x8d\x28\xac\x44\x37\xdd\xdd\xbc\x80\x67\x3e\x7f\x33\xf3\x8d\x13\x4f\x59\x46\x67\x3d\xa0\xe7\x46\x2f\xd7\x46\xcc\x73\x07\x17\x7f\x9f\xff\x0b\xf7\x39\xc2\x27\xa6\x18\x17\xc5\x02\xae\x0a\x97\x6b\x63\xfb\x70\x25\x25\x54\x20\x0b\x06\x2d\x9a\x47\xe4\xfd\x6a\xf7\x47\x8b\xa0\x33\x70\xb9\xb0\x60\x75\x61\x52\x84\x54\x73\x04\x5a\xce\xf5\x23\x1a\x85\x1c\x66\x6b\x60\x70\x3d\x1d\x86\xd6\xad\x25\x56\xdb\xa4\x48\x51\xd1\x56\x97\x33\x07\x29\x53\x30\x43\xc8\x74\xa1\x38\x08\x45\x46\x84\xdb\xf1\xcd\xe8\x6e\x3a\x82\x4c\x48\xec\xf7\xce\xa2\xcd\xa6\xd7\x2b\x4b\x8e\x99\x50\x08\x41\xaa\x95\x43\xe5\x02\xb2\xc6\x16\x53\x27\xb4\x82\x54\x32\x6b\x07\x41\xb3\x0c\x43\x0a\xe0\xd0\xc0\x82\xcb\x70\x6e\x04\x0f\x92\x2a\x70\x9c\xff\x93\xdc\xb1\x05\xfa\x32\xb4\x2c\x3c\x34\x8e\xc8\x56\x3b\xb9\x78\xdc\xf2\xf8\x7d\x29\x52\xd9\xdb\x3f\x61\x78\x7e\x11\xa6\x5a\x36\x44\xfe\x29\xcb\x95\x70\x39\xf4\xff\xa7\xcc\xdd\x48\x39\xb3\xa6\x84\xb6\xce\xb8\x90\x2f\xc8\x36\xda\x87\x6f\xe1\x2a\xac\x14\xc9\xb4\xc8\x32\xf1\x74\x49\xb0\xfe\x66\x13\x47\x64\x29\x4b\x54\x7c\xb3\xd9\x6d\x9c\x7a\xdd\x6d\x15\xec\x9e\xcd\xe4\x21\x92\xfb\xaa\x0f\x1e\x67\x7c\x0b\x18\x2c\x3c\xda\x79\xf4\x41\xca\xb1\xbd\x45\x96\x1d\x23\xaa\x18\x24\x01\x1a\xca\x36\xc5\x4b\x9d\x51\xbb\xd0\xb2\x34\x4c\xcd\xb1\x49\xd6\xd8\x36\xf0\x44\x75\xab\x3d\x55\xea\xed\x5d\x9c\x39\x16\xd6\x56\xbf\xfc\x6c\xf7\x2d\x2f\xcb\x30\xb4\x28\xe9\x38\xec\x5c\x36\x67\x5c\xaf\xc2\xf0\x82\x2f\xf7\xe2\xd4\xb1\x66\x9a\xaf\x5f\xdb\x6b\x9f\x39\xec\xa8\x9d\xfc\x70\x86\x0f\x0f\x75\x69\x8a\xce\xa3\x2a\x16\x68\x44\x1a\x24\x23\xc5\x97\x5a\x28\x17\x47\x8e\x77\xc5\x19\x33\xc8\x0d\x66\x83\x20\xfa\x4f\x0d\xaa\x06\x55\x21\xb6\x5d\x80\x67\xd8\x9a\xaa\xb3\xff\x0c\x85\x91\x5f\x0b\xf4\xe7\x35\xa0\x86\x36\x30\x7f\xec\x58\x72\x3c\x2f\xf2\x1c\x51\xa1\x4b\x79\x9e\x96\x82\xde\xcd\x2e\xd5\xa1\x02\x87\xc8\xb8\xa4\x4f\x87\x2f\xf1\xf4\xf2\x9a\xb7\xe5\x0f\x5c\xc2\xe5\x00\xf6\xd5\xdd\x7b\x7b\xde\x41\x93\x3b\x74\x2b\x6d\xbe\x74\xac\xc9\x15\xe7\xa6\xdf\x50\xbf\x4d\x97\x0e\x4b\xf4\xc9\xa0\xed\xba\xed\x9e\xf5\x97\x97\x36\xd1\x74\xcd\xa8\xf9\x78\xd8\x71\x71\x3b\xde\x1f\x3a\xd4\xfd\x6b\x49\xba\x13\x8f\xff\x32\xd8\xf7\x3f\xcb\xdb\x70\x16\xfe\x2c\x4b\x89\x0a\xe8\xb6\xfb\xab\x63\x65\xde\x2a\x48\x7d\x37\x7e\x57\x2d\x2f\xfa\xcf\x90\xa9\x8e\xf3\xbb\x6a\x74\x92\x8f\xd8\x5e\x5f\xac\x64\xf4\xd9\x25\xad\x31\x82\xc6\x83\xf6\x1c\x81\xd2\xb6\x27\x9c\xbd\xa1\x8d\x86\x46\x5a\x17\x4b\xc0\xc5\xd2\xad\x7b\xc7\x72\x68\xaf\x9b\x08\x71\xd4\x8c\x88\x89\x9f\x28\xeb\xae\x8e\x8c\xd1\xe6\x6d\xc3\x64\x2c\x76\xba\x33\x82\x08\x26\x43\x41\xe3\xa9\x0d\x12\xa1\x32\x1d\x47\x22\x19\x4d\x26\x1f\x26\xd4\x48\xba\x2a\x28\xca\x78\xd8\x74\xf3\xa4\xa1\x93\xe6\xe0\x27\xe4\xe1\x4a\x70\x97\xef\xda\xb7\x5f\xce\xb6\xd8\xe6\xf7\x5b\x00\x00\x00\xff\xff\xbc\x42\xa9\x8f\xe2\x0b\x00\x00")

func resolveHtmlBytes() ([]byte, error) {
	return bindataRead(
		_resolveHtml,
		"resolve.html",
	)
}

func resolveHtml() (*asset, error) {
	bytes, err := resolveHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "resolve.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _statsHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x55\x5f\x4f\xdb\x30\x10\x7f\xcf\xa7\x38\x45\x6c\x02\x24\x27\x03\x69\x7b\x40\x21\x13\x83\x0e\x21\x31\x90\x80\xf5\x15\xb9\xf1\xa5\xf1\xe4\xda\x9d\xed\xc0\x2a\x2b\xdf\x7d\x97\xa4\x85\x02\x45\xfc\x11\xed\x4b\x7d\xe7\xfb\xf7\xfb\xdd\xe5\x1c\x42\xba\x1d\x01\xfd\x0e\xcd\x74\x66\xe5\xb8\xf2\xb0\xfb\x65\xe7\x1b\x5c\x55\x08\x43\xae\xb9\x90\xf5\x04\x0e\x6a\x5f\x19\xeb\x12\x38\x50\x0a\x3a\x23\x07\x16\x1d\xda\x1b\x14\x49\xe7\xfd\xdb\x21\x98\x12\x7c\x25\x1d\x38\x53\xdb\x02\xa1\x30\x02\x81\xc4\xb1\xb9\x41\xab\x51\xc0\x68\x06\x1c\x7e\x5c\x1e\x31\xe7\x67\x0a\x3b\x37\x25\x0b\xd4\xe4\xea\x2b\xee\xa1\xe0\x1a\x46\x08\xa5\xa9\xb5\x00\xa9\x49\x89\x70\x7a\x72\x38\x38\xbb\x1c\x40\x29\x15\x26\xd1\x76\xda\x34\x51\x14\x82\xc0\x52\x6a\x84\xb8\x30\xda\xa3\xf6\x71\xd3\x40\x08\xb2\x84\x64\xc8\x55\x8d\x64\x93\x39\x2c\xbc\x34\x1a\x0a\xc5\x9d\xdb\x8f\xe7\x22\x63\x94\xce\xa3\x85\x89\x50\x6c\x6c\xa5\x88\xf3\xae\x8c\x4c\xc8\x9b\x85\x69\x7b\x55\x20\xe1\x5c\x1c\x18\xdb\xd9\x65\x85\x51\x73\xdb\xce\xde\xf3\x91\xc2\x65\x0f\xc1\x3d\x67\xbd\xb6\x15\xff\xb8\xc7\x9a\x7b\x91\x31\x87\x8a\xea\xb9\xbb\x72\x15\x17\xe6\x96\xb1\x5d\x31\x5d\xca\xd1\xe7\x19\x19\x31\x7b\xa8\x6b\x7f\x21\xdc\x4a\x5f\xc1\xc6\xd8\x10\x60\xd8\xdb\x87\xee\x50\xe3\x4f\x6b\x26\xc3\xf3\x5f\xf7\x3c\x3c\x76\xcc\xbc\x7d\x1a\xad\xbf\x10\xab\xe1\x5c\x5f\xf7\x1c\x68\x62\x4f\xd7\x13\xb4\xb2\x88\xf3\x2e\x3c\x6c\x1e\x9b\xad\x2c\xf5\xe2\x23\x22\x66\x53\x8b\x79\x08\x3d\xa2\xa6\xc9\xd2\x56\x5e\x1d\x9c\xb4\x2b\x40\x7c\x10\xb2\xab\xd9\xf4\x23\x81\xd1\xdc\xfe\x43\xc1\x6e\xa5\xf0\x55\x4c\xf8\xa6\x56\x6a\x5f\x42\xfc\xe9\x2a\x86\x7b\xac\xaf\x47\x19\x02\x2a\xb7\xfe\xc6\x0e\x8f\x4e\xd7\x44\xc0\x62\x32\xdf\x08\x5a\x8b\xf5\x61\xee\x5b\xbe\x6e\xc8\x49\x9b\xe6\xf5\xb8\x49\xf3\xf0\xd3\x27\x45\x9b\x6f\xbe\xaf\x52\x5a\x58\x79\x94\xa5\xf3\xbd\x96\x47\x0b\x8e\xfa\x35\x78\xac\xcc\x68\x84\xe2\x1d\x8b\xb0\xfa\x9a\xb7\xce\x59\x4a\x87\xf7\xad\xc6\x5a\x3d\x44\x12\x82\xe5\x7a\x8c\x90\x1c\x56\x52\x09\x8b\xfa\x51\x27\x33\x25\xf3\x8c\x43\x65\xb1\xa4\xf2\x3c\xf7\xee\xbb\xde\x0f\xa1\xb6\xea\x6f\x8d\x76\x06\x1b\xc9\x65\xfb\xce\xd8\x33\x3e\x21\xfe\x3e\xbb\xe5\xbb\xa4\x69\x3a\x86\x5b\x5e\x39\xad\x0b\x0a\x15\xbd\x34\x39\x4f\xea\x19\x58\x4b\x6f\xdb\x8a\xaa\x06\x17\x17\xe7\x17\x9b\x21\x50\x72\xb2\x38\x39\x6a\xd3\x6d\xed\xc1\x3c\xdf\x4b\xb9\xb2\x74\xc1\xc4\xca\x6e\xf5\x9f\xf1\x7c\x91\x27\x5d\x0d\xef\x6b\x57\x26\xef\xda\xc3\xc9\x44\x72\xc5\x24\xbd\x8b\x2e\xce\xa5\x2e\x4d\x96\x3e\x83\xe3\x8d\x1d\x7e\x32\xd4\x2d\x05\xcf\x0c\x21\x2c\x4d\x63\xff\xff\x3f\x00\x00\xff\xff\xd3\x1e\x4b\xd1\x65\x08\x00\x00")

func statsHtmlBytes() ([]byte, error) {
	return bindataRead(
		_statsHtml,
		"stats.html",
	)
}

func statsHtml() (*asset, error) {
	bytes, err := statsHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stats.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _syncbaseHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\x56\x5f\x6b\x23\x37\x10\x7f\xf7\xa7\x18\x4c\x48\x93\x6b\xbd\xee\x1d\xb4\x0f\xc1\xde\x92\xc4\x57\x30\x5c\xc2\x81\xd3\xbe\x94\x7b\xd0\x4a\x63\xaf\x40\x96\x8c\x24\xbb\x98\xc5\xdf\xbd\xa3\xfd\xbf\xf6\x26\xd7\x0d\xe7\x27\x6b\xfe\xff\x7e\x33\xa3\x55\x96\x4d\x3f\x8c\x80\x7e\x8f\x66\x77\xb4\x72\x93\x7a\xf8\xf4\xeb\xc7\xdf\xe1\x25\x45\xf8\x9b\x69\x26\xe4\x7e\x0b\xf7\x7b\x9f\x1a\xeb\x22\xb8\x57\x0a\x72\x23\x07\x16\x1d\xda\x03\x8a\x28\xf7\xfe\xcb\x21\x98\x35\xf8\x54\x3a\x70\x66\x6f\x39\x02\x37\x02\x81\x8e\x1b\x73\x40\xab\x51\x40\x72\x04\x06\x0f\xab\xc5\xc4\xf9\xa3\xc2\xdc\x4d\x49\x8e\x9a\x5c\x7d\xca\x3c\x70\xa6\x21\x41\x58\x9b\xbd\x16\x20\x35\x09\x11\xbe\x2c\x1f\x3f\x3f\xaf\x3e\xc3\x5a\x2a\x8c\x46\x1f\xa6\xa7\xd3\x68\x94\x65\x02\xd7\x52\x23\x8c\xb9\xd1\x1e\xb5\x1f\x07\xe9\xcc\x21\xf7\xd2\x68\xe0\x8a\x39\x37\x1f\x97\xc7\xc9\x84\x32\x78\xb4\xb0\x15\x6a\xb2\xb1\x52\x8c\xe3\x3c\xf3\x2c\xfd\x2d\x5e\x1d\x35\x4f\x98\xc3\xd9\x94\x0e\x85\x54\xc8\x43\x15\x20\x38\x70\x24\xc0\xd5\x9f\xc9\xe4\xe3\xa7\x09\x37\xaa\x8c\x00\xb0\x22\x02\x08\x00\x8c\xb3\x2c\x7a\xb1\x88\x51\x29\x88\xfe\xdc\x2b\xf5\xcc\xb6\x78\x3a\x8d\x8b\xb0\x53\x8a\x1b\x8f\x66\xd3\xb2\xa8\x38\x80\xb0\x4c\x6f\x10\x0a\xc7\x45\xe2\x08\x03\x19\x0e\x03\x91\x65\x70\x25\x12\xb8\x9b\x43\xb4\x60\x9e\x05\x2c\xd1\x52\x40\x1e\xaa\x80\x58\x89\x43\x8d\x64\x1a\x95\x55\x35\x88\x87\x62\x06\xb8\xdf\xed\xe0\x41\xa1\x73\x52\x6f\xaa\xb0\xd5\xb9\x02\x5c\x43\x7e\x5f\x8a\x99\x50\xcd\xa1\x66\xea\xd1\x28\x55\xf0\xe1\x4a\x84\x95\xb5\x8f\x1b\xdd\x5d\xde\x8e\xa5\xa8\xa1\x92\xb6\x63\x2c\xe2\x47\x8b\xcc\x1b\xfb\x93\x0b\x63\x6b\x3b\x60\x82\x63\x0b\x0c\xa1\x10\xe7\xde\x33\x06\xa9\xc5\x35\x35\xa7\x1c\x9f\x29\xaf\x93\xff\xa1\xe7\x44\x48\x3e\x07\x68\x8b\x02\xae\x45\x32\x3f\x27\xe9\x5a\xe8\x79\xbb\x1f\xd7\x3c\xd8\x74\x73\x5f\x73\x3d\xef\x00\x89\x9f\x8c\xc5\x28\x8a\x66\x53\x16\x77\xeb\xca\x32\x54\x0e\x2f\x38\xb9\xd1\x06\x9a\xd2\xdc\x2d\x39\xf9\x8e\x93\x16\xb5\x0f\xe9\x4a\xca\x5b\x8d\x1b\xd6\xb6\xfe\xa6\x85\x1d\xdb\x58\xb3\xdf\x5d\xf6\xac\x56\xdd\x91\x79\x63\xd8\x40\xee\x69\x5d\x48\x12\xc4\x15\x4f\x39\xa6\xa0\x38\x8f\xd0\x10\x99\x73\x95\xe3\xeb\xed\x66\x19\x70\x81\x8e\x5b\xb9\x0b\x4c\xd5\x31\xc3\x3c\xac\x76\xc8\xa3\x96\xb2\x1a\x8a\xef\x06\xfc\xba\x4f\x94\x74\x29\x54\x97\x0c\x04\x4c\x9d\x72\x43\xe4\xd2\xaa\x32\x2a\x71\xbf\x99\xa0\x75\x3c\x23\xbd\x4b\xfd\x95\x67\x9b\x5f\xe0\x8a\x71\x4e\x4c\x7c\x91\xce\xe7\xf7\x44\x91\x15\xed\xd6\x41\xa7\x21\x4d\x5b\x68\x30\xc9\xf3\x74\x82\x1d\x59\x49\x22\xb1\x64\xa4\xc7\x58\xc4\x3f\x93\x75\x93\x21\x5a\xea\xb2\xfa\x0b\xe3\x2c\xfb\x57\xfa\xb4\x5d\x4e\xf4\x6c\x7c\xb0\xef\x8d\x3b\x21\x82\x5e\x0f\xd5\x9e\xdc\xb7\xa4\xcd\x54\xd7\xe7\x4e\xbc\xb2\xa8\x9e\x26\x0f\x98\x92\xa6\xd2\xde\x96\x5d\xd6\xd5\xc9\xda\x3b\x00\x6f\x8f\x54\xdb\xf6\xfd\x55\x7c\x7f\x94\xba\xf7\xaa\xbb\x1c\x82\x66\xc9\x03\x92\xd7\xae\xe7\x22\x55\x28\xf6\xee\x1f\xaa\xb2\x40\xf8\xad\xbe\x75\x73\x61\xb3\xad\xdf\x2e\x7b\xfe\x9e\xce\xb6\x69\x7b\xa2\x07\x85\x7f\x61\x09\xe5\xb8\xd8\xbf\x96\xee\xff\xde\x14\x4b\xf7\xd5\xca\x03\xf3\x97\xcb\x5c\x6b\x7e\xd8\x0a\x6f\x71\x9b\xa0\xa5\x2d\x96\x7a\x6d\xf2\xfd\x7d\xca\x25\xe7\x0c\x57\xed\x2a\xb4\xaf\xaf\x2b\x6d\x6b\x11\x92\xd6\xfb\x26\xcc\x11\x15\x6c\xac\xf4\xc7\xf0\x39\x0a\x39\xa2\xb6\x90\x8c\x1e\x94\x49\x16\x78\x78\x39\xee\xb0\x36\x69\xc9\x4e\xa7\xdb\xbe\x1d\x1d\xde\xb1\x37\x3e\x61\xae\xfe\x82\x0c\xfd\x82\xb5\xde\x5b\xad\xf8\x43\x1f\x8a\x03\xdf\x2e\x37\xcf\x06\x44\xf9\xea\x72\xb7\xe7\xaf\xa1\x59\xbb\xa2\xbc\xfa\x51\xfd\xef\xbf\x00\x00\x00\xff\xff\x5c\x44\xcd\x6b\x8b\x0b\x00\x00")

func syncbaseHtmlBytes() ([]byte, error) {
	return bindataRead(
		_syncbaseHtml,
		"syncbase.html",
	)
}

func syncbaseHtml() (*asset, error) {
	bytes, err := syncbaseHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "syncbase.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _vtraceHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\x94\xdf\x6f\xdb\x36\x10\xc7\xdf\xf3\x57\xdc\xb4\x06\x4e\xba\x51\x76\x02\x64\x18\xe4\xd8\x40\x9b\xe6\x21\x40\xd1\x87\xa5\xeb\x9e\x69\xf2\x24\x71\xa1\x49\x81\xa4\xdd\x1a\x9a\xfe\xf7\x1d\x29\xc9\x3f\x82\x06\x89\x1f\x0c\xf2\xc4\x2f\xbf\x77\x1f\x1e\xd9\xb6\xd3\xf7\x67\x40\xbf\x3b\xdb\xec\x9c\xaa\xea\x00\xd7\xb3\xab\x3f\xe0\x6b\x8d\xf0\x8d\x1b\x2e\xd5\x66\x0d\x1f\x36\xa1\xb6\xce\xe7\xf0\x41\x6b\x48\x8b\x3c\x38\xf4\xe8\xb6\x28\xf3\xa4\xfe\xdb\x23\xd8\x12\x42\xad\x3c\x78\xbb\x71\x02\x41\x58\x89\x40\xd3\xca\x6e\xd1\x19\x94\xb0\xda\x01\x87\x8f\x8f\x9f\x98\x0f\x3b\x8d\x49\xa6\x95\x40\x43\xd2\x50\xf3\x00\x82\x1b\x58\x21\x94\x76\x63\x24\x28\x43\x41\x84\xcf\x0f\x77\xf7\x5f\x1e\xef\xa1\x54\x1a\xf3\xb3\xf7\xd3\xae\x3b\x6b\x5b\x89\xa5\x32\x08\x59\xee\x1b\x6e\x32\x0a\xdd\x4a\xb5\x85\xb4\xeb\x22\x6b\xac\x57\x41\x59\x53\x38\xd4\x3c\xa8\x2d\xce\x35\x96\xa1\x68\xdb\xfc\x31\x70\x17\xba\xee\x7c\xfe\x5d\xc9\x50\xc7\xc8\x3f\x71\x10\x23\x6b\xee\x2a\x65\x8a\x59\xf3\x63\xde\x70\x29\x95\xa9\x58\xb0\x4d\x71\x4d\xf3\x0c\x94\x5c\x64\x64\xc0\x48\xf0\x20\xbb\x2e\x5b\xa6\xd4\x6f\x7f\x61\x0c\xfe\xb2\x36\x40\xcc\x02\x18\x1b\xc2\x31\x95\xa8\x70\xf4\x29\x83\xa0\x42\x4c\x8a\xa4\x5f\xf8\x1a\x49\xfc\x72\x9a\x7d\x56\x57\xb3\xd9\xf9\x7c\xc5\xc5\x53\xe5\x22\x07\xca\xd2\xe0\x8f\x70\x67\xb5\x75\x5d\x37\xaf\x31\xc2\x2f\xae\x6e\x28\x31\xa9\x7c\xa3\xf9\xae\x58\x69\x2b\x9e\x7e\x52\x41\x1c\x67\xcb\xdb\x29\x25\xd4\xa7\xd6\xb6\x8e\x9b\x0a\xe1\x9d\xfa\x1d\xde\x89\x5a\x69\x09\xc5\x02\xf2\xbb\x38\x72\x68\xba\x8e\x56\x04\x5c\xd3\xa6\x61\x0f\x77\x58\x98\xbe\xa1\x91\x91\x75\xbf\xe1\x38\x3d\x3e\x0e\x61\xb5\xe6\x8d\x47\x66\xf8\x76\x7f\x2c\x91\x45\x70\x88\x7b\x7c\xaf\x1c\xd4\x4d\xcc\xfa\x04\xe5\x24\xa2\x9c\xbc\x2c\x3b\x86\x52\x5a\x43\xa3\x59\x43\xe8\xad\x11\xd4\x5e\x4f\x8b\xc9\xbf\x7c\xcb\xbd\x70\xaa\x09\x45\xb0\x55\xa5\xf1\xab\xe3\x02\x2f\xb2\x31\xa1\xcb\xc9\xb2\x6d\x55\x09\x1a\xcd\x81\x06\xfc\x07\x3a\xc0\xac\xeb\xda\xf6\x24\x1e\x03\xa9\xf2\x9f\x80\x7d\x11\xe5\x09\x18\xc8\xdf\x44\x53\x50\x25\x68\x42\xe2\x98\x4a\x87\xb0\x6b\xa8\xfe\x40\xed\x30\x15\xde\x0f\x90\xf2\x5a\x49\x64\x62\xcc\x7a\x59\x18\x1b\x2e\x7e\x8d\xc4\x2e\xa1\x4d\x2b\xe2\x6f\xec\x15\x30\xd6\xe0\x3c\x85\xa3\x77\xda\x77\x49\xfb\x27\x3a\xa0\xa9\x8a\x0d\xaf\xc8\xe4\x80\x6c\xb0\x29\x37\x46\x44\xea\x70\x4c\x50\xc9\x63\x8f\x2d\x77\x10\x0f\x3a\xdd\x89\x05\x48\x2b\x36\x6b\x2a\x20\xaf\x30\xdc\x6b\x8c\xc3\x8f\xbb\x07\x79\xd1\x37\x43\x06\xbf\xd1\xd1\x5e\xce\xf7\xea\x51\x99\x0b\xcd\xbd\xff\xac\x7c\xc8\x7b\xab\x8b\xc9\x49\x85\x93\x23\x4d\x74\x24\x7c\xaf\x18\x4e\xe2\xdd\x9d\x3c\xf7\x1b\x74\x6f\xb5\x4b\xb4\x12\x90\x88\x0b\x7b\x16\x49\xbb\xc8\x86\x29\x63\xf4\x96\x05\x74\xb0\x96\x9a\x55\x4e\xc9\xb1\x8d\xeb\x9b\xe5\xb7\x10\x81\xd1\xd3\xe6\x60\xe8\xba\xdb\x29\x85\xfb\xef\x8d\x43\x6a\xc0\xfc\x13\xae\x36\x55\x02\x1b\xbf\xc6\xe0\xe1\x16\x0c\x4e\x71\x67\x81\xf4\x06\x8f\x03\xc6\xae\xae\x19\x75\xd7\x60\xb5\x5f\x3f\xdc\x95\xf1\xd8\x4b\x8d\x74\x35\xe8\x8f\x49\xe5\xfa\x6c\x0b\x67\xbf\x1f\xa9\x9e\x2b\xd7\xca\xb0\xf1\x41\x3a\x7f\xb6\xae\x6f\xf9\x97\xdb\x3b\x72\xa5\xae\x3d\xd9\xfa\x70\x59\x4e\xdc\xe2\xe3\xd0\x70\x17\xfb\x7c\x74\xee\x5d\xff\x7c\xdd\xb5\x7f\x9f\xde\xe0\x76\x34\x1d\x86\x74\x96\x3d\x85\xc3\xcd\xfb\x3f\x00\x00\xff\xff\x06\x9b\x5a\x17\x08\x07\x00\x00")

func vtraceHtmlBytes() ([]byte, error) {
	return bindataRead(
		_vtraceHtml,
		"vtrace.html",
	)
}

func vtraceHtml() (*asset, error) {
	bytes, err := vtraceHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "vtrace.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

// Asset loads and returns the asset for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func Asset(name string) ([]byte, error) {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[cannonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
		}
		return a.bytes, nil
	}
	return nil, fmt.Errorf("Asset %s not found", name)
}

// MustAsset is like Asset but panics when Asset would return an error.
// It simplifies safe initialization of global variables.
func MustAsset(name string) []byte {
	a, err := Asset(name)
	if err != nil {
		panic("asset: Asset(" + name + "): " + err.Error())
	}

	return a
}

// AssetInfo loads and returns the asset info for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func AssetInfo(name string) (os.FileInfo, error) {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[cannonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
		}
		return a.info, nil
	}
	return nil, fmt.Errorf("AssetInfo %s not found", name)
}

// AssetNames returns the names of the assets.
func AssetNames() []string {
	names := make([]string, 0, len(_bindata))
	for name := range _bindata {
		names = append(names, name)
	}
	return names
}

// _bindata is a table, holding each asset generator, mapped to its name.
var _bindata = map[string]func() (*asset, error){
	"alltrace.html":    alltraceHtml,
	"blessings.html":   blessingsHtml,
	"chrome.html":      chromeHtml,
	"collection.html":  collectionHtml,
	"glob.html":        globHtml,
	"logs.html":        logsHtml,
	"no_syncbase.html": no_syncbaseHtml,
	"profiles.html":    profilesHtml,
	"resolve.html":     resolveHtml,
	"stats.html":       statsHtml,
	"syncbase.html":    syncbaseHtml,
	"vtrace.html":      vtraceHtml,
}

// AssetDir returns the file names below a certain
// directory embedded in the file by go-bindata.
// For example if you run go-bindata on data/... and data contains the
// following hierarchy:
//     data/
//       foo.txt
//       img/
//         a.png
//         b.png
// then AssetDir("data") would return []string{"foo.txt", "img"}
// AssetDir("data/img") would return []string{"a.png", "b.png"}
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
// AssetDir("") will return []string{"data"}.
func AssetDir(name string) ([]string, error) {
	node := _bintree
	if len(name) != 0 {
		cannonicalName := strings.Replace(name, "\\", "/", -1)
		pathList := strings.Split(cannonicalName, "/")
		for _, p := range pathList {
			node = node.Children[p]
			if node == nil {
				return nil, fmt.Errorf("Asset %s not found", name)
			}
		}
	}
	if node.Func != nil {
		return nil, fmt.Errorf("Asset %s not found", name)
	}
	rv := make([]string, 0, len(node.Children))
	for childName := range node.Children {
		rv = append(rv, childName)
	}
	return rv, nil
}

type bintree struct {
	Func     func() (*asset, error)
	Children map[string]*bintree
}

var _bintree = &bintree{nil, map[string]*bintree{
	"alltrace.html":    &bintree{alltraceHtml, map[string]*bintree{}},
	"blessings.html":   &bintree{blessingsHtml, map[string]*bintree{}},
	"chrome.html":      &bintree{chromeHtml, map[string]*bintree{}},
	"collection.html":  &bintree{collectionHtml, map[string]*bintree{}},
	"glob.html":        &bintree{globHtml, map[string]*bintree{}},
	"logs.html":        &bintree{logsHtml, map[string]*bintree{}},
	"no_syncbase.html": &bintree{no_syncbaseHtml, map[string]*bintree{}},
	"profiles.html":    &bintree{profilesHtml, map[string]*bintree{}},
	"resolve.html":     &bintree{resolveHtml, map[string]*bintree{}},
	"stats.html":       &bintree{statsHtml, map[string]*bintree{}},
	"syncbase.html":    &bintree{syncbaseHtml, map[string]*bintree{}},
	"vtrace.html":      &bintree{vtraceHtml, map[string]*bintree{}},
}}

// RestoreAsset restores an asset under the given directory
func RestoreAsset(dir, name string) error {
	data, err := Asset(name)
	if err != nil {
		return err
	}
	info, err := AssetInfo(name)
	if err != nil {
		return err
	}
	err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
	if err != nil {
		return err
	}
	err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
	if err != nil {
		return err
	}
	err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
	if err != nil {
		return err
	}
	return nil
}

// RestoreAssets restores an asset under the given directory recursively
func RestoreAssets(dir, name string) error {
	children, err := AssetDir(name)
	// File
	if err != nil {
		return RestoreAsset(dir, name)
	}
	// Dir
	for _, child := range children {
		err = RestoreAssets(dir, filepath.Join(name, child))
		if err != nil {
			return err
		}
	}
	return nil
}

func _filePath(dir, name string) string {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
}
