bindata.go 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. // Code generated by go-bindata.
  2. // sources:
  3. // template/ccd.file.tmpl
  4. // template/client.ovpn.tmpl
  5. // template/dh4096.pem.tmpl
  6. // template/iptables.tmpl
  7. // template/server.conf.tmpl
  8. // DO NOT EDIT!
  9. package bindata
  10. import (
  11. "bytes"
  12. "compress/gzip"
  13. "fmt"
  14. "io"
  15. "io/ioutil"
  16. "os"
  17. "path/filepath"
  18. "strings"
  19. "time"
  20. )
  21. func bindataRead(data []byte, name string) ([]byte, error) {
  22. gz, err := gzip.NewReader(bytes.NewBuffer(data))
  23. if err != nil {
  24. return nil, fmt.Errorf("Read %q: %v", name, err)
  25. }
  26. var buf bytes.Buffer
  27. _, err = io.Copy(&buf, gz)
  28. clErr := gz.Close()
  29. if err != nil {
  30. return nil, fmt.Errorf("Read %q: %v", name, err)
  31. }
  32. if clErr != nil {
  33. return nil, err
  34. }
  35. return buf.Bytes(), nil
  36. }
  37. type asset struct {
  38. bytes []byte
  39. info os.FileInfo
  40. }
  41. type bindataFileInfo struct {
  42. name string
  43. size int64
  44. mode os.FileMode
  45. modTime time.Time
  46. }
  47. func (fi bindataFileInfo) Name() string {
  48. return fi.name
  49. }
  50. func (fi bindataFileInfo) Size() int64 {
  51. return fi.size
  52. }
  53. func (fi bindataFileInfo) Mode() os.FileMode {
  54. return fi.mode
  55. }
  56. func (fi bindataFileInfo) ModTime() time.Time {
  57. return fi.modTime
  58. }
  59. func (fi bindataFileInfo) IsDir() bool {
  60. return false
  61. }
  62. func (fi bindataFileInfo) Sys() interface{} {
  63. return nil
  64. }
  65. var _templateCcdFileTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x8e\xc1\x6a\xc3\x30\x0c\x86\xef\x7e\x0a\x91\x9d\x23\xec\x40\xc6\xf2\x04\x63\x87\x8d\x91\x4b\xcf\x6e\x2c\x27\xa6\xe0\x04\xdb\xa1\x0d\xc2\xef\x5e\x62\x1a\xda\x1e\x04\xfa\x05\xff\xa7\xcf\xd9\x61\xf6\xd6\x8d\xf5\xb2\xc6\x09\x98\x01\x7f\xfe\x21\xe7\xb2\xfd\x51\xfa\xd5\xf1\x02\x39\x8b\x0f\x17\xe6\x35\x11\xa8\xae\x41\xf5\xf9\x85\x9d\x44\x09\x4d\xdb\xe2\x31\x52\x30\x3b\x0b\xd8\x93\x71\x81\x86\xf4\x7d\xda\x6b\x05\x5a\x85\xc7\xad\x1e\x75\xa2\xab\xde\xc0\x90\x55\x70\xde\x16\x1d\x63\x6d\xa6\x61\xa9\x04\x33\x90\x37\x7b\x45\x30\x07\xed\x47\x02\xec\xf7\x8f\xf1\x49\x29\x02\xcc\xce\x1b\xba\x01\x82\x2c\x96\x47\x52\x6f\xa9\xc9\xf9\x95\x79\x0f\x00\x00\xff\xff\x5e\x42\x13\x8e\xe5\x00\x00\x00")
  66. func templateCcdFileTmplBytes() ([]byte, error) {
  67. return bindataRead(
  68. _templateCcdFileTmpl,
  69. "template/ccd.file.tmpl",
  70. )
  71. }
  72. func templateCcdFileTmpl() (*asset, error) {
  73. bytes, err := templateCcdFileTmplBytes()
  74. if err != nil {
  75. return nil, err
  76. }
  77. info := bindataFileInfo{name: "template/ccd.file.tmpl", size: 229, mode: os.FileMode(420), modTime: time.Unix(1503944154, 0)}
  78. a := &asset{bytes: bytes, info: info}
  79. return a, nil
  80. }
  81. var _templateClientOvpnTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x3c\xce\x31\x4b\xc5\x30\x10\x07\xf0\xfd\x3e\xc5\x81\x8b\x0e\x79\x1d\xdc\xa4\x08\xe2\xa0\x20\xea\x9b\x74\x10\x87\x34\xbd\xbe\x86\x97\xde\x85\xe4\x5a\x88\x8f\x7e\x77\x49\x2b\x6e\x77\xbf\x3b\xf8\xff\xaf\x50\x47\x9f\x51\x96\xc8\x38\xf8\x40\xe8\x33\xda\x59\x65\xb2\xea\x9d\x0d\xa1\xe0\x89\x98\x92\x55\xea\xb1\x2b\xf8\xf5\xfe\x71\x7c\xfd\xbe\x1e\x55\x63\xbe\x6b\x9a\x93\xd7\x71\xee\x0e\x4e\xa6\xc6\xd9\xbe\x91\x25\x4e\x37\x00\x2e\x78\x62\x85\x9e\x16\xd4\x99\x21\x26\x51\xc1\xcb\x05\x0f\xc7\x6d\x5a\x57\x48\x34\x89\xd2\x66\xcf\x92\x95\xed\x44\xb8\xae\xfb\x8f\x24\xdd\x5f\xb2\x84\xc5\x24\xd2\x54\xd0\xf3\xe0\xd9\x2b\x01\x67\xe3\x28\xa9\xd1\x12\x09\x33\xa5\x85\x12\xb0\x74\x9e\x7b\x88\x94\xb2\xcf\x6a\xce\x54\xfe\xe7\x1a\xef\x64\x8a\x26\xfc\x08\x2c\x94\x3a\xbc\x05\x3b\xeb\x68\x58\x9c\x75\x23\x01\xb4\xce\xde\x43\xcd\x7d\x7c\xc0\x75\x6d\x9b\xba\xb6\x35\xe2\x4f\x69\x6b\xd3\x36\x3b\xb5\x67\x2a\xfb\xe1\x85\xca\xe6\x1b\x54\xf1\x03\x1e\xde\xe4\xe9\x73\xeb\x2e\xb3\x92\x61\x89\x73\x08\xf5\x46\xdc\x57\xfe\x0d\x00\x00\xff\xff\x94\xe5\xf3\xfc\x6c\x01\x00\x00")
  82. func templateClientOvpnTmplBytes() ([]byte, error) {
  83. return bindataRead(
  84. _templateClientOvpnTmpl,
  85. "template/client.ovpn.tmpl",
  86. )
  87. }
  88. func templateClientOvpnTmpl() (*asset, error) {
  89. bytes, err := templateClientOvpnTmplBytes()
  90. if err != nil {
  91. return nil, err
  92. }
  93. info := bindataFileInfo{name: "template/client.ovpn.tmpl", size: 364, mode: os.FileMode(420), modTime: time.Unix(1504303338, 0)}
  94. a := &asset{bytes: bytes, info: info}
  95. return a, nil
  96. }
  97. var _templateDh4096PemTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\xd4\x35\x12\xa4\x08\x00\x40\xd1\x9c\x53\x4c\x4e\x6d\xe1\x16\xe2\xee\xde\x19\xd0\x38\x8d\xfb\xe9\xb7\x76\xe2\xfd\xe1\x3f\xc0\xfb\xe7\xbf\x38\x51\x56\xad\x3f\x82\xf2\xc7\x61\x3d\xd6\x14\x03\xd1\xf3\xff\x7e\xc0\x54\x55\x51\x70\x75\x9e\xad\x45\xb6\x2f\xb3\xc9\xd2\xe7\x37\x56\x43\x1c\xa4\x1b\x2d\xac\xa4\x52\xd1\xb4\xbe\xa5\x86\xf7\xd6\x99\x21\xd2\xde\x29\x40\x6c\xec\xf4\x04\x64\x3e\x11\x13\xee\x7e\x38\xf0\xc5\x28\x74\x5d\xa8\x62\x55\x98\x61\x1a\xea\x16\x8e\x9e\xaf\x9b\xd5\x15\x48\x63\x88\xf6\xd1\xa8\x1f\x03\x39\x69\x95\x7a\x63\x88\xe6\x15\x81\x75\xb8\x4a\xdb\x34\x5f\x4b\x1c\xdf\xc5\x06\x57\x17\xc0\xf7\x75\x64\x4a\xc5\x2d\x99\x2d\x90\x54\x89\x30\x0f\x94\x8f\x86\xce\xa5\xda\x3e\x8b\xaa\x8d\x2f\x7c\x14\x4d\xab\xeb\x97\x43\x29\x3e\xd4\xd9\x9e\x62\xf5\x10\x0d\x6a\xcb\xbf\x7c\x5f\xfa\xb5\x77\x01\x52\x8d\x90\x43\x92\xb3\xfa\x3a\xdd\x57\xdd\x33\x6c\xbb\x15\x03\x5d\xe9\xe4\x5e\xb0\x56\x9e\x92\x31\x26\xb3\x57\x2e\x0a\xf2\x73\x82\xf0\x0c\xd7\x9f\xd8\xef\xa7\xfc\x40\xe5\xf0\x9b\xa9\x9b\x42\x02\xdd\xf1\x83\xa0\xe0\x73\x4e\xc7\xd5\x0b\x62\x43\xc2\xc7\x2e\x11\x97\x73\x4d\x8b\xf9\x94\x4c\xd6\x84\x76\x79\xbf\x20\xb5\xab\xd4\x51\x22\xd0\xb0\x96\x60\x63\x64\x61\xec\xb6\xf5\x2b\x96\x04\x99\x03\x95\x47\xc4\xe1\xc7\x6b\x2e\xab\x66\xde\x60\xac\x67\x29\x30\x92\x96\x55\x31\x46\xa3\x6f\x25\x0f\xdb\x2f\xd6\x9f\x10\xef\x0b\x0e\xbf\x90\x49\x13\x9a\xf1\xc3\x3f\x06\xb7\xf9\xfe\xb7\x40\xd4\x6e\x01\x66\x8f\xa4\x08\x8e\x5b\x8c\xcb\x9f\xf0\xc9\xb6\xa0\x09\x09\x6a\x33\x15\x30\x08\xbb\xfd\xac\x4f\xfc\xd0\x38\x7d\x5b\x48\x07\xe3\x3b\x2a\x63\x6b\xd0\x7a\x03\x72\x20\x5a\xd6\xec\xa7\xcc\x9e\x30\x07\xe6\x25\x22\x07\x29\x4c\xa4\x09\x49\xba\x7e\x88\xdd\xad\x58\xd0\xfa\x3a\xf4\xf3\xa2\x12\xfe\x0b\x3b\x63\x9a\x7d\xe1\xf5\x36\xa2\x1c\xca\x8c\x27\xd5\xdf\x13\x2f\x56\x83\xf0\xbc\x0d\xba\xed\xa2\x02\x6c\x54\xc0\xa0\x09\x1f\xbe\xd8\x18\xbb\x44\xcb\x11\xad\x82\x53\xbc\xcc\x0e\x63\xe6\x41\x70\x27\x10\xb5\x3c\xda\x12\xfd\xab\x2d\xf9\x26\x71\xc7\xe4\xc0\x98\x70\xcb\xfe\xfd\x40\x59\xf6\xdb\x18\x1d\x30\xe1\x62\x4f\x14\xea\x8c\xbe\xee\x59\x80\x2b\x4d\xea\xc2\x0e\xa9\x6e\x32\xcd\xc7\x34\x25\x88\x8e\xf7\xbf\x66\x09\xbb\x3e\xd6\xd6\x6e\x87\xc3\x33\xf2\x66\x74\xeb\xd5\xd4\xb7\xc4\x72\xe8\x58\x18\xb0\x8c\x92\x87\x7a\x38\xe5\xe0\xd5\x8a\x3f\x37\x16\x7a\x35\x96\xf8\xd0\x09\x4f\x9a\x0d\x3a\x3b\x64\x13\x21\xda\x1e\xd3\xac\x7c\x66\xf4\x88\x1b\xc6\x28\x5d\x70\x69\x37\xbe\xae\x55\x56\xdb\x7f\x27\x80\x2b\x14\x4a\xd9\x50\x26\x14\xfb\x83\x14\xb4\x8e\xa1\xb3\x2e\x3f\x3f\xd0\x90\xb9\xfb\x66\xc6\xe3\x30\x83\x6e\xce\x08\x0b\x8a\x2f\xe8\xda\x95\xc2\x8d\xf5\x68\x42\x94\x6f\x3f\xca\x13\x67\x27\x05\xc0\x64\xa4\x4a\x11\x14\x5e\x69\xd2\x71\x89\xaf\x5b\xe2\x39\x8e\x47\x69\x0f\xee\x20\x33\x1b\xf7\xc6\x05\xd0\x8a\x91\x6e\x8b\x94\xd2\xb3\xa6\xb5\xd9\x4c\xad\x51\x77\x55\xad\x21\x7b\xb6\x26\x22\x03\x28\x1a\xd9\x19\xda\x0f\x12\x54\x7d\xba\xaf\x83\x48\x3c\x25\xbc\x90\x54\xa3\x74\xa1\x5b\x2e\x44\xfd\xc8\xa5\x29\xc6\x4d\x78\x6f\xcf\xe9\x3c\xf2\xd9\x3e\x7c\xab\x38\xf9\x6f\x3d\x2d\xed\xd5\x46\x07\xa0\xda\x1a\x19\xcd\x3c\x57\x5a\x88\x1d\x40\x87\xd1\x91\x6a\x5a\x3d\x96\x00\x23\xbb\x22\xaa\x33\x70\xf6\x85\xfc\xdd\x93\x4b\xd0\x44\xc1\xaf\x46\x8a\x89\x8b\x5b\x82\x95\x33\x84\x6f\xc1\x19\x50\x0e\x54\x66\x34\x5e\x0c\x9c\x53\x9b\x1b\xa9\x8c\x28\x26\xf7\x3c\x13\xe8\xa1\xa6\xcc\xbd\x07\xef\x56\x65\x3a\x26\x9f\xd8\xfc\x0b\x4a\x49\x2c\x8b\xe7\x9b\xa1\x90\x7d\xd1\x93\x9c\xbe\x53\x3e\x12\x3e\x0b\xd8\xcc\x2d\xce\x05\xfa\xb3\xc2\xc1\xb6\x02\x7c\x6f\x38\xa7\x81\x30\x2b\x75\xe4\xcf\xa8\xb6\x42\x6a\xd1\xa7\xd2\xe9\xad\x3f\xa6\x45\xea\x6d\x79\x3c\xdf\x67\x20\x7e\x3c\x4b\xec\x55\xb2\x21\xbe\x11\x40\x63\xe2\xb9\x59\xa6\x3d\xc9\xf4\xf7\xd0\xdc\x66\x38\xdc\xbb\xcf\x60\xbb\x91\x6a\x38\x0c\xe4\xa6\x2c\x10\x24\xd9\xe0\x36\xd8\x5b\x9a\x3f\x47\x7b\xd6\x97\xa7\x46\xcf\x64\xb0\x47\x58\x65\x70\x07\x50\xa3\x82\xbd\x64\x78\x9e\x8d\x91\x76\x1e\x6c\xe3\xd6\xd4\x26\x14\x89\x98\xfd\x7d\x9a\x45\x27\x28\xca\x67\xe0\xfd\xbe\xb7\x03\x0c\x19\x22\x5d\x64\x0f\x3c\x30\xb9\x55\xfc\x34\xcc\x8d\x8e\x6a\x04\xb0\x8a\x7c\xbb\x51\xd0\x97\xcb\x4d\x1f\x54\xcf\x28\x35\x8c\xee\x09\xa3\xfc\xc8\x8b\xce\x24\x89\x8a\x79\xc7\xd0\x34\xa3\x04\xcd\x58\x19\xec\x7d\xc6\x79\xb2\x9c\x21\x47\x1a\x0b\x52\x10\xfd\x89\x01\xea\x98\x67\x1d\x43\x35\xa9\xbd\xc8\x99\xd6\xf7\x63\xee\x77\xd4\x7e\xbf\x44\xd3\xc0\xd6\x46\x9e\x40\x01\x43\xf8\xf7\x78\x8e\x78\x71\x15\x4d\xbd\xd7\xdb\x64\x47\xe8\x60\x85\x3b\xcd\x70\x74\x5f\x01\xe9\x6e\xca\xfc\x55\xbd\x3a\x07\xc7\x1b\xe6\xc7\x18\x92\x3d\x07\xd3\xbd\x42\xfd\xa8\x2b\xd8\x6e\xdd\xd2\x23\x19\x65\xfe\x45\x17\xf8\xeb\xb0\x68\x09\xff\xa7\xf3\xbf\x01\x00\x00\xff\xff\x2c\x8e\x5a\x0b\xbc\x05\x00\x00")
  98. func templateDh4096PemTmplBytes() ([]byte, error) {
  99. return bindataRead(
  100. _templateDh4096PemTmpl,
  101. "template/dh4096.pem.tmpl",
  102. )
  103. }
  104. func templateDh4096PemTmpl() (*asset, error) {
  105. bytes, err := templateDh4096PemTmplBytes()
  106. if err != nil {
  107. return nil, err
  108. }
  109. info := bindataFileInfo{name: "template/dh4096.pem.tmpl", size: 1468, mode: os.FileMode(420), modTime: time.Unix(1503944154, 0)}
  110. a := &asset{bytes: bytes, info: info}
  111. return a, nil
  112. }
  113. var _templateIptablesTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")
  114. func templateIptablesTmplBytes() ([]byte, error) {
  115. return bindataRead(
  116. _templateIptablesTmpl,
  117. "template/iptables.tmpl",
  118. )
  119. }
  120. func templateIptablesTmpl() (*asset, error) {
  121. bytes, err := templateIptablesTmplBytes()
  122. if err != nil {
  123. return nil, err
  124. }
  125. info := bindataFileInfo{name: "template/iptables.tmpl", size: 0, mode: os.FileMode(420), modTime: time.Unix(1503944154, 0)}
  126. a := &asset{bytes: bytes, info: info}
  127. return a, nil
  128. }
  129. var _templateServerConfTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x7a\x6d\x6f\xdb\xb8\xb2\xff\x7b\x7d\x8a\x81\xfd\xa2\x09\x60\x2b\x8e\xdb\xee\x69\x37\xff\xff\xbd\xf0\x3a\xee\xd6\xd8\xd6\xf5\x6d\x9c\x7d\x00\xf6\x0d\x2d\x8d\x2d\xc2\x12\xa9\x25\x29\xbb\x3e\x07\xe7\xbb\x5f\xcc\x90\x94\xe4\x24\xdd\x8b\xb3\x8b\xa0\xb6\x44\x0e\xe7\x79\x7e\x33\xf4\x5d\xad\x8d\x83\xdb\xdb\xf7\x6f\x12\xfe\xf4\xaf\x7f\x41\xba\xa6\x0f\xff\xfe\x77\x92\x0c\x61\x33\x5f\x83\x36\xf0\x78\xbf\x06\x8b\xe6\x88\xe6\xbf\x93\xbb\xda\x68\xa7\xc1\x65\x75\xe2\x3f\xf1\x16\xfe\xe4\xf7\x0c\x72\x3c\x82\x6b\xd4\x00\x4e\xb2\x2c\x21\x33\x28\x1c\x82\x00\xa3\x1b\x87\x39\x2c\xd7\xf4\x52\x61\x39\x6a\xd7\x8a\xfa\xc9\x5a\x05\xe8\x0a\x34\x0a\x5d\x58\x9b\x26\x43\x78\xb4\xd8\xae\x9f\x0c\x40\xee\xe0\xac\x1b\x10\x06\xbb\xc5\x5b\x23\xf3\xbd\x54\xfb\x64\x08\x42\xe5\x50\x88\x23\x42\x6d\xd0\x93\xcd\x41\xf0\x56\x38\x4a\xe3\x1a\x51\x82\x54\x0e\xcd\x4e\x64\x18\x96\xf3\x6e\xcc\x41\x3a\x38\x49\x57\x10\x79\xd3\xd1\x6e\x57\x13\x2f\x4b\x7f\xf8\x49\x28\x07\x4e\x43\xa6\x95\x33\xba\x04\x91\x65\x68\x2d\xd4\xba\x94\x99\x44\x9b\x0c\x41\x1f\xd1\x80\x2b\x10\x7e\x5d\xaf\x46\xbc\xa7\x6a\xac\x8b\x82\xee\xa4\xc1\x93\x28\xcb\x64\x08\xa6\x29\xd1\xc2\x4e\xfb\xd5\xf4\xb7\x79\x5c\xdd\x6c\x66\xeb\xcb\x83\xbf\x28\x50\x5a\x8d\x7f\x93\x2a\xd7\x27\x0b\xf6\x6c\x1d\x56\xd6\x53\xce\x84\x82\xbd\x3c\x7a\x71\x00\xbf\xd5\xc4\x85\x83\x46\x49\x07\xaa\xa9\xb6\x68\x46\x60\x9b\xac\x00\x61\x49\xad\x93\x40\x2f\xd0\x1a\x41\x13\x14\x3c\x56\x3a\xc7\x41\xe0\x45\xda\xb0\xac\xd2\xd6\x75\xe7\x05\x91\xbc\xd9\x94\x76\xb0\x6b\x54\xe6\xa4\x56\xc9\x10\x1a\x55\x92\x16\x88\xa5\x5a\x18\x27\x45\x59\x9e\xc9\x8b\x76\x0d\x7d\xc8\xa5\x15\xdb\x92\x98\x24\x1a\x51\x03\xad\xe4\x2f\x48\x7d\x17\x8c\x9e\x04\xc7\x22\x27\x8b\x0a\x50\x88\xb9\xf5\x1b\x67\x6b\x52\xcb\xeb\x29\x88\x5c\xd4\x0e\x0d\x28\x51\xd1\x31\x3b\xa3\x2b\x5e\xb1\x42\x77\xd2\xe6\x00\x73\xad\x14\x32\xb3\x16\x6a\xa1\xb0\x0c\xbe\x94\x0c\xbd\xc7\x54\xda\x90\x05\x84\x02\xad\x30\x05\x12\xfe\xf7\x35\x3c\xac\xa7\x24\x44\x21\xf7\x05\x1a\xf2\x5d\x36\xa6\x38\x33\x0b\xe4\x04\x16\x4b\xa2\x7a\xc4\x4e\x48\x3a\xb6\xc7\xec\x73\x61\x67\xeb\xc8\x2d\x69\x79\xf5\xdc\xb2\xd0\xd8\x86\xf5\x97\x6b\xf5\xca\x85\xb3\xd8\x28\x77\xd1\x52\xf0\xf9\xbc\x11\x35\x29\xe5\xe1\xe1\xd3\xcd\xe6\xd3\x03\x18\xad\x1d\x64\x68\x9c\xdc\xc9\x8c\xfc\xec\x2a\x13\xd7\xa3\xfe\x93\x64\x08\x57\xf4\xf5\x7a\xc4\x9e\x5f\x1b\x79\xa4\x75\x07\x3c\xc3\xd5\x01\xcf\xd7\x29\xc0\x42\x64\x05\x64\xa5\x44\xe5\x42\x7c\x10\xc7\x3e\x0b\x78\x27\x66\x65\xb9\x02\xa5\x01\x7d\x52\x4c\x9e\xd6\x25\x43\xa6\xb3\x93\x25\x29\x6f\xd3\x6d\x22\x1a\x24\xbd\x27\x6a\xd9\x77\xc8\x5d\xac\xf7\x77\x2b\x2a\x84\x4c\xf8\x8d\xc9\x90\xe4\x41\xff\x66\x80\xc2\x9e\xc7\xc6\x8a\x01\xe4\xd2\x60\xe6\xb4\x39\xb3\x0e\x05\x91\x0e\x81\xb6\x03\x9b\x19\x59\x3b\x1f\x44\x7b\x54\x68\x84\x93\x6a\x0f\x5f\x1f\x66\x7d\xd1\x6d\x90\xa6\x27\xb3\x4d\x01\xbe\x62\x85\x14\x22\x64\xc9\xc6\x72\x0c\x51\xe4\xfc\xd5\x20\xcc\x75\x55\x69\x05\x2b\xe2\x2f\x5a\xce\x8b\x14\x48\x21\xa9\x4a\xef\xf8\x85\x17\xee\xe2\x40\x2f\xcc\x4c\x9d\xe1\xf7\xb7\x93\xf7\xac\x9c\x4a\x28\xb1\xc7\x8a\x56\x7a\x43\x73\xf0\x6e\x91\x8e\xce\x39\xe0\x6a\x54\x14\x5f\xf4\x58\x94\x96\x79\x02\x01\xeb\x5f\xe6\x0f\x30\xbc\x9d\x12\x1f\x95\x70\x94\xd4\xa2\xae\xc9\xa4\x16\x11\x06\xf5\x21\xb3\xb7\xd3\xa8\x2a\x79\x44\x90\x8a\x0e\x84\x5a\xec\xf1\x3a\x4d\xee\x32\x01\x51\xa1\x37\x24\xfd\x4d\x26\xd2\xcc\xb8\xe4\x8e\x2d\x78\xf9\xca\xcb\xe9\x5f\xd3\x49\x2f\xbe\xa5\x17\x30\x84\x4d\x21\x2d\xb3\x02\xb6\xd0\x4d\x99\x93\x3c\x07\xac\x1d\x58\xca\xc0\x2e\x49\x32\xc1\xc5\x62\x3e\x9b\xa3\x71\x6b\xe1\x0a\xaa\x18\x7c\x28\x3f\xee\x3d\x24\x8a\xf4\xec\x17\x3c\xc7\x47\xc9\x10\xee\xe5\x6e\x27\x11\x0a\x2c\x4b\x2f\x8f\x11\x15\x3a\x34\x9c\xa2\x7e\xf6\x16\x47\x9f\xb6\xc9\x21\x29\x89\xff\x98\x0c\x01\x40\xd7\xa8\xac\x2d\x21\x2f\x78\x0f\x8c\x75\xe3\x20\x2f\x6e\x27\xd3\x37\x69\x8d\x15\xd0\x07\xf2\xb7\x66\x6b\x9d\x74\x8d\x43\x98\x4e\xde\xbc\x63\x63\xd3\xab\x7e\xad\x69\xac\xaf\x2f\xbc\x60\x2b\x9d\xf7\x9f\x64\x98\x17\x3d\x82\xc9\x5d\x5e\x3c\x51\x55\x5e\xd0\x0e\x7e\x99\x17\x2c\xdb\xfd\xc7\x35\x31\x63\x7b\x02\xc6\x0c\xe5\x74\xad\x4b\xbd\x3f\x13\x4f\xad\x2a\x6d\xb3\xa5\x3a\x74\x25\xf2\xdc\xa0\x25\x36\xe0\x28\x05\x2c\xd7\xd7\x5d\xce\x8d\xd9\x23\x86\xd8\x71\x9a\x4e\xd2\xf7\xec\xa4\xa5\x3e\xa1\x09\x31\xab\x93\xa1\xa7\x58\x53\xd1\xc7\x1c\xae\x5c\x81\x0a\x14\xba\xd7\x93\x11\xc8\x14\x53\x10\x70\xf3\x7a\x02\x35\x9a\x40\x8b\x0e\xb9\xc7\x9d\x68\x4a\x67\x29\x46\x78\x2d\x5c\x51\xea\x37\x98\xe9\xaa\x42\x95\x63\x7e\x9d\x44\xd6\x03\xbb\x24\xd5\x5c\xab\x9d\xdc\x37\xa6\xcb\x1e\x94\xb5\x88\x27\x62\xa0\x3c\x83\xe0\x52\x12\x36\x0c\x59\xed\xd1\xff\x9d\x86\xdc\x88\x53\x0c\xab\x20\x3b\x55\x4a\xa3\x2b\x32\x7b\x2f\xbf\x70\x2d\x72\xe2\x80\x70\x3b\x49\xdf\xa5\x93\xf4\x96\x49\x49\x67\xb1\xdc\x8d\x42\xc1\x31\x68\x9d\x5f\xb9\x45\xa8\x04\x31\x72\x14\xb2\xf4\xd9\x5a\x47\xc5\x11\xe5\x5e\x02\x6c\x37\xc4\x65\x86\x43\xfe\x22\x11\x68\xd5\x1e\x9b\x72\xca\xa0\x7d\x94\xaa\xa1\x94\x0a\x81\x3c\xae\x73\xa3\x64\xf8\x1c\xb4\xa4\x6d\xbe\x8b\xc1\xca\xec\x73\x35\x92\x6a\xa7\xd3\xe4\x2e\x08\x1a\xce\x99\xc0\xf4\xed\xdb\x34\xfe\x4d\x92\xf0\x96\x7c\x6b\x85\x84\xe0\xf8\xe3\x67\x61\x0f\xc1\xbd\x3e\x0b\xa9\x9c\x90\x8a\xc0\x18\x66\xda\xe4\x94\xb4\x82\x84\xff\x6f\xfc\x5f\x2d\x30\x5a\xae\xa3\xa2\x29\xc1\x59\xab\x33\x29\x7c\xb9\x94\xca\x8b\x14\x92\xfb\x72\xd7\x1a\x6a\xaf\xd1\x42\x4e\x61\xa7\x49\x1b\xd2\xb2\xa6\x05\x79\xd7\x88\x4f\xf3\x35\x57\xed\x5b\xdf\x0c\x19\x4f\x58\x2b\xf7\x0a\xf3\x60\x1f\xae\x02\xcf\x19\xe9\xaa\x78\xad\x75\x49\xd5\xd9\xc1\x49\x10\x7f\xb5\xc1\xa3\xd4\x8d\x25\x3f\x0a\xa4\xd2\x44\xee\x32\x76\xba\x31\xad\x1e\xd7\x68\xac\xb4\x0e\x64\x5d\xa7\xee\xdb\xdf\xf8\x24\xe9\xfb\xb9\x5d\x92\x21\xfc\x11\x81\xdb\x4e\x1a\xeb\x38\x19\x73\x9a\xf9\xf2\xf0\xca\xb6\x0b\x21\x13\xb5\xd8\xca\x52\x3a\x0a\x5c\xa7\x03\xa0\x6c\x2b\x7d\x0b\x69\x3c\xbc\xa4\xc7\xf1\x30\x8a\xfd\xe5\xbc\x07\x7a\xb8\x70\xaa\x0e\x30\x56\x42\x79\x1c\x60\x09\x13\x33\xaa\x58\xae\x6f\x14\xba\x8a\xcc\xab\x15\x53\x0b\xe7\xb5\x54\x46\x50\xa0\x41\x38\xa1\x37\x63\x53\xb5\x91\xf1\xe6\xe6\xc2\x75\x52\x80\x0f\x52\x31\x7d\x5e\xcc\x47\xd2\x49\xc2\x4a\x0e\x55\xb2\x84\x11\x8a\x89\x7b\x0f\x68\xa3\xf5\x8a\xad\xfc\xff\x03\xe1\xb7\x13\x40\x95\xc7\x6f\xb7\x93\xc9\x35\x29\x42\x94\xa5\x0e\xb0\xc3\xa3\xe5\x27\xbe\x90\x02\x7c\x42\x8f\x26\x62\xbc\xf8\x94\xe2\xd8\x2f\x28\x76\x7a\xa0\xf2\x45\xc8\xdf\x46\xc7\x38\x68\x21\x4a\x7a\x19\x24\xd0\xf1\xd9\xf1\xf8\x1f\x3a\x04\x63\x16\xe2\x5e\xc0\xfd\xc7\xf9\x7a\x5c\x1b\xfd\xed\x3c\x82\x13\x2b\x3b\x7a\xb7\x13\xe5\xc1\x8b\x4b\x96\x89\x51\x12\x58\x64\xad\xd2\xde\x2e\x7d\x70\x52\xc9\x50\xb6\x90\xaa\xe7\xfb\x41\x7d\x1e\x5d\x53\xde\xbc\x5f\x3d\xb4\xa0\x2a\x66\xc4\x14\x5e\xf0\x52\x0f\x53\xbf\xef\xa7\xcf\xbd\x94\x62\xf7\xfb\x7e\xfa\xc4\x4b\x19\xb3\x3a\xfc\xd1\xdb\x8d\x35\xa6\x15\x39\x91\x36\x07\x4b\x5e\x19\xb5\x71\x15\xfa\x8e\x0e\x0c\x5f\x47\x85\x75\xa0\xc9\xab\xa5\x87\x89\x41\xd2\x86\xad\x6e\x14\x03\x6c\xaf\xee\xb0\xf8\xa9\xbd\xc9\x86\xeb\xc6\x16\xbe\xcd\xb4\x51\xf1\x21\xbb\x05\x1f\x3c\x81\x74\x51\xd7\x8c\xd9\x48\xac\x16\x09\x7a\x97\xb6\xb0\xc5\x42\xaa\x36\x1f\x79\x88\xd3\x07\x88\x94\x7b\x5c\x81\xac\xdd\xa7\x7b\xb9\x50\x30\x60\x23\xa8\xee\xcf\x3a\x28\x7d\xe2\x33\x89\xb3\x0b\x77\xe8\xe0\x75\xb0\x34\x27\xb7\xab\x98\xdf\x2f\x83\x94\x2a\xf0\x56\x64\x87\x97\x7d\x2a\x4d\x86\x9e\xfe\xed\xfb\x69\x7a\xfb\xc3\xbb\xf4\xfd\xb3\x02\x11\x3d\x7e\xfa\x6c\xe9\xed\xf7\x96\xbe\x7d\xb6\x74\xfa\xbd\xa5\xaf\x9f\x2d\x7d\xfd\xbd\xa5\x6f\x92\x61\x4d\xa6\x1a\x84\x0d\xff\xa0\x0d\x14\x88\x4f\x37\x0c\x9e\x2c\x0c\x94\x7f\x78\x69\x21\x6c\x74\x28\x00\x60\x6b\xcc\x08\x7c\xf7\x62\xc8\x7b\x44\x7c\x91\x0c\x5b\xcf\x24\x80\xb0\x03\xf1\x3c\x29\x41\x21\x2c\x88\x68\xe0\x64\x18\xf1\x97\xf7\x0e\x90\xce\x3b\x42\x80\xba\x6c\x72\x06\x57\x64\x12\x3f\x07\x18\xf5\x9b\x9b\x66\xdb\xb5\x2e\x83\x2c\xcb\x7d\x7f\x1d\x1d\xbf\xc7\x57\xc8\x43\x1c\xee\x5c\x67\xad\xc7\xf5\x2f\x83\x82\xeb\x94\x1c\x7f\xf1\xfb\xec\xf3\xfa\xd3\xe2\x47\x78\x20\x44\x67\xfb\x41\xe5\x9b\x5a\x12\x8b\x9f\xf5\x9a\xc2\xcc\xb7\x35\xd4\x25\xc3\x60\x53\x60\xa9\x15\xd5\x51\x52\x65\x90\x86\xe4\xb7\x15\xb5\x6c\x97\xb2\x53\xb0\x77\xfa\xa2\x7a\x21\xb2\x42\x2a\xec\xc6\x0b\xd1\x52\x6f\x26\xe9\xed\xf4\xdd\x85\x1f\x4f\xdf\xbc\xa3\xbc\xf1\x81\x52\xd4\x08\x1a\x15\x12\x3d\x27\x79\x8e\x2a\xce\xff\xf6\xc7\x64\x18\x94\x13\x2a\x79\x2e\x0d\x64\x59\xfe\x7f\xbb\xb9\x07\x85\xaa\x1b\x3c\x71\x4b\x92\x65\xf9\x4d\x27\x64\xcc\x6c\xa1\xda\xf8\x2e\x41\x5e\x52\xf6\xbc\xc3\x13\xde\x93\xd0\xe7\x84\x40\xa7\x9c\xd2\x91\x7d\xf5\x24\x1f\x78\xa4\x1d\xa6\x42\x61\x64\xc2\xa5\x5d\x5a\xc0\x6f\xa2\xaa\x4b\xf4\x84\xda\xac\x49\xe9\xb7\x6b\x36\x88\x21\xa9\xf6\x23\x9e\xb0\xc4\xf4\x1d\x00\x7a\x87\x24\x7d\x31\xea\xc6\x6e\x54\x21\x06\x3e\x2b\xf4\xba\x40\xfb\xb2\xa7\xf4\xc7\x58\x61\x78\xd4\x53\x13\x29\xef\x1b\xe6\xec\xd4\xbd\x82\xa4\x77\x14\xca\xef\x19\xeb\x46\x5b\xfe\x9d\x29\xef\x5e\x36\xe5\xf3\xa7\xdc\x07\xce\xef\x63\x4b\x14\x2c\x29\xf2\xbc\x87\x0c\x08\x41\x5c\x18\x33\x58\xaf\x85\x7c\x94\x31\x22\x7b\xf1\xc3\x34\x49\x32\x53\x8e\x8f\x68\xe4\xce\xb7\x96\xf3\xaf\x9f\xba\x63\xba\xb8\x11\xee\x42\x25\xa8\x18\xf2\xe7\x72\xb7\x43\xe3\xc3\xa9\x9d\xe2\x3c\x99\xf6\x71\x60\xb6\x0b\x61\x6f\x74\x53\x87\xc9\x44\x07\x73\x36\x5c\xf3\xc8\xb6\xee\xa4\xa1\x42\x57\xe8\x9c\x05\xb8\xba\xbd\x86\xaf\x8d\x82\xaa\x29\x9d\x24\xbf\x88\xe9\x3d\x17\x58\x69\x65\x47\xa0\x55\xc0\x23\x22\x2b\x58\x62\xf0\x67\xf8\x11\x4e\xcb\xd5\x8b\x43\xb4\xb0\x3e\x6e\xf7\x1b\x6f\x3c\x69\x10\x75\x6d\x74\x6d\xa4\x70\x58\x9e\xc9\x9e\x57\xd3\x6b\xb8\x9a\xe5\x47\xa1\x32\xcc\xaf\x61\x1e\x03\xc9\x0f\x58\xb8\x27\x3b\x2b\x51\xc9\x8c\x10\x63\x20\x5d\xe9\x9c\x34\x7b\x31\xd3\x93\x8a\x9a\x80\x5a\x2b\xcb\x56\xf3\xfa\x8a\xac\x10\x9e\xef\xb4\xd5\x69\xe8\xc1\xe7\xba\xb0\xec\x79\xc6\x23\x58\x51\xa2\x30\x6a\x1c\xbd\xd1\xb3\x95\x26\x77\x97\x8f\xd3\x1b\xff\x22\xf1\xf3\x5a\x6f\xc9\x7c\xe4\x3d\xa9\x1b\x8e\xf8\xc1\x73\x44\x7f\x9c\xfc\xba\x11\x15\x23\x05\xbf\x36\xc0\xb2\xdc\xf7\xc0\xc9\x90\x3a\x60\x6e\xd6\xf7\xc2\xe1\x49\x90\xe8\x46\x37\xfb\xa2\x9b\xf6\x66\x22\x0e\x0b\x88\xe4\x72\x0d\xce\x88\x1d\x95\xa5\x98\x25\x4f\xb8\x85\xad\xd1\x27\x0f\x26\x19\x72\x44\x74\x57\x6a\x7d\x68\x6a\x66\x60\xaf\x9f\x92\x26\x13\x6d\x9e\x21\x80\x98\x85\x2f\x86\x92\xab\xd9\x86\x5c\xd0\x5c\xa0\xbc\xa7\xde\x11\x11\x05\x3f\xf0\xa8\x5e\x52\x1f\x97\xa3\x69\xa7\xc0\xb4\x86\xc5\x25\x5f\x41\x53\x9e\xaf\xd3\xe4\x2e\x14\xe7\xa0\xa1\x71\xd4\x44\x8e\xbb\x5b\xd8\x9e\x6b\x61\xed\x38\x2f\xb2\x7a\xf0\x1f\xac\x24\x28\x8e\x86\xbb\xd4\x80\x14\xdb\xea\xd8\x6a\xdc\xa2\xa3\xb4\x48\xae\x14\x9a\x48\x22\xef\x05\x0e\x96\xeb\x4a\xd1\xfd\xea\xc1\x6b\xe0\xb7\xe5\xcb\xa8\x79\x3e\xfb\x75\x31\xdb\x50\x0c\x16\xce\xd5\x3f\xde\xdc\xe8\x1a\xd5\xb1\x56\xa9\x42\x77\xb3\x13\x7f\xa5\x85\xab\xca\x21\x71\x97\x89\x23\x0a\x67\xc3\xd4\xa1\x43\x16\x5b\xa4\x32\x60\x70\xe7\xc7\x87\xdc\xa5\x36\xdb\x92\xeb\x79\x07\xd5\x2d\xa9\xee\x28\x73\xcc\x61\x7b\xe6\x91\x54\xae\x6c\x9a\xe9\xaa\x55\x24\x9d\x31\xd6\x35\x57\x7e\xda\x37\x9d\xbc\x4b\x7f\xf8\x47\x3a\x9d\x4e\xe9\x6f\x90\xbc\xbc\xea\x5d\xca\xff\xb3\xea\x1e\xdb\x1c\xfc\xc4\xcb\x5b\x00\xdc\xcf\x64\x3d\x2f\xef\xcd\x36\x06\x16\x71\x00\x1d\x3e\xa6\x8c\xf0\xd3\x39\x3a\xfe\xe8\x62\x7c\xeb\x0b\x97\x0d\x73\x8b\x16\x89\x12\x16\xdb\x69\x93\x61\xff\x88\x17\x96\x8e\xc2\xd8\xfd\x12\x35\x33\xb3\xfd\x9c\x74\x91\xdc\x08\x89\xf1\xe6\x57\xf6\xa5\xcb\x82\x50\x53\x9c\x1e\x07\xfc\xf3\x77\x5a\x91\xbb\x2e\xdf\x06\x4e\x09\xcd\xc8\x7d\xe1\x22\xc0\xe9\x7a\x20\x3f\x9f\xee\x00\xd4\xcd\x01\xcf\x5c\x0e\x08\xa2\x11\x96\xeb\xf0\x94\x8d\x45\x9e\xc7\x20\xed\x74\x8c\xa7\x44\xa5\x1f\x5d\x3b\xb4\x0c\x36\xeb\xc6\x50\xe5\xa1\x1d\x1f\x34\xf5\x22\x3a\x6f\xf8\x6e\x82\xa0\x23\x21\x48\xec\x8d\xa1\x02\xd8\x64\x9c\x29\x09\xbc\x86\xb1\xfb\x25\x47\xb5\x90\xc6\xcf\x9c\x97\x1f\xe0\x8f\x2f\x8f\xf0\x71\xf6\xeb\x02\x56\x5f\x36\xf0\xf3\x62\xb5\xf8\x3a\xdb\x2c\xee\x61\xb9\xba\x5f\xfe\xba\xbc\x7f\x9c\x7d\xa2\x80\x5b\x7c\xdd\x2c\x3f\x2c\xe7\xb3\xcd\xe2\xe6\x97\xc5\x1f\xb0\x9e\x2d\xbf\x3e\xc0\x87\x2f\x5f\x61\x31\x9b\x7f\x84\xf9\xa7\xe5\x62\xb5\x21\x5e\xf8\xeb\xc7\xd9\xaf\xcb\xd5\xcf\xb0\xdc\x3c\xc0\x97\xdf\x56\xf0\xb8\x5a\xfe\xcf\xe3\x02\x06\xf3\x2f\x9f\x3f\x7f\x59\xc1\x6a\xf6\x79\x31\xa0\xb5\x8f\x2b\x7a\xb2\x58\x6d\x60\xf3\x71\xf9\x00\x9f\x96\xab\x05\x7c\x79\xdc\xa4\xc9\x5d\xde\xd4\x25\xf3\x3b\xce\xf8\x2e\x87\x82\xe9\x80\x58\x8b\x92\x6c\xd2\x59\x87\xf2\x27\x5a\xa8\xa5\xda\x8f\x4b\x79\xe0\xc1\x04\x5a\x2b\xf6\x18\x5d\xd6\x92\x52\xb8\x27\xe2\x12\xa8\x8d\x2b\xf8\xc6\x2d\xf4\x6e\xa5\x54\x07\xb0\xda\x57\x75\xd6\x23\x77\x98\xd4\x8f\x59\xea\x3e\x55\x58\xe7\xdb\x40\x7e\x47\xa0\x77\x4f\x95\x36\xd7\x27\x45\x9e\xbc\x26\x23\xe1\x11\xcd\x19\x6e\x27\x60\x31\xd3\x2a\xb7\xa3\x38\x4e\x61\xca\x06\x2b\xcd\x1d\x42\x8d\xdc\xb3\xfa\x31\x98\xdc\x81\xd2\xcc\x7c\x6c\xec\x73\xc8\x1b\x13\x0a\x02\xdc\x4e\x23\x35\x70\xb2\x42\xa8\xd1\x48\x9d\xa7\x49\xa7\x88\xdb\x09\x2d\x22\x05\x91\x63\xe0\x37\x67\x04\xed\x68\x0c\xf5\xed\x5b\x3c\xf3\x56\x3a\x3f\xa6\x15\xea\x0f\xcf\xf1\x12\x68\xd4\xbb\x4c\x1d\x7c\xfc\x3c\x9b\xb7\x41\x34\xf0\x5d\x69\x81\x65\x0d\xdb\x52\x67\x07\xb8\xd7\x0f\x20\x9c\x13\xd9\xc1\xb2\x22\x1f\xef\xd7\xc0\xb7\xc1\xbb\x52\xeb\xdc\x8f\xc0\xfa\x13\xf6\xcb\xc1\xfa\xb1\x56\x30\x1e\xef\x51\x1d\xf0\x0c\xe3\xb1\x1f\xf6\x83\x13\x29\x7b\xe3\xe5\x88\xb6\xbd\x2d\x09\x0e\xdd\xde\x23\xb1\x4e\x32\x5d\x9f\xfd\x3d\x8a\xb4\x70\xc0\x73\x37\xdf\x65\x3d\xb5\xf3\xfe\xde\xfd\xc2\xab\xc9\x2b\x3f\x7b\x75\x97\x87\xbc\xba\x7d\x15\x9f\xb6\x23\xdd\x3b\x57\xda\xb1\x68\x28\x9c\x99\x39\x98\x5c\x5c\x5a\x48\xdb\x5e\x54\x0c\xe1\x81\x2f\xf3\x88\x27\x73\xae\x9d\xde\x1b\x51\x17\x32\x83\x4c\xd6\x21\x23\x6e\x42\x13\xb4\x93\x7b\x90\x0e\x2b\x2f\xca\x96\xda\xaa\x5a\x72\x0e\x0b\xce\x15\x2f\x84\xfc\x52\x3e\x89\x4b\x7f\x59\xa6\xc9\x9d\xa7\x07\x3f\x7d\x18\xcf\x7f\x9a\x43\xf8\x6f\x08\x3f\x95\xfa\xb4\x93\xb6\x80\xab\x90\x75\xaf\xdb\xa5\xb3\xc5\xc3\xf8\x76\xfa\x2e\xac\x1f\xd2\xf7\xf6\xdd\xfd\xe2\x61\xbc\xb8\x5f\xbc\xf6\x2f\x87\xb0\x31\x94\xd9\xc6\xf7\x8b\x07\x86\xfe\x1e\xca\x66\xba\xaa\xf9\xfe\x40\xab\xa8\x21\xc2\x10\x14\x2b\xbd\x9b\xed\x80\x7b\xa5\xe3\x11\x62\xef\xe6\x9a\xb2\x34\x65\xa5\xf6\xbd\x54\xdf\x11\x33\x4d\xe8\xa8\x71\xf9\x4f\x1d\x83\xbc\x12\xdf\x64\xd5\x54\xe1\x32\x9a\x81\xb1\x56\x59\x63\xa8\x1c\x95\xe7\x98\x71\xd9\x91\xdb\x22\x83\x2d\x14\xe7\xfa\x95\x26\x77\x95\xf8\x36\x8e\xaf\xc3\xf0\x6e\xe9\x5e\x51\xaf\xb2\xd7\x3a\x07\x99\xa3\x08\xb8\xad\xc9\x2e\xc6\x2d\xc9\x30\x80\xe9\x57\x96\xfb\x34\x59\x22\xa5\x12\xb1\xe3\x51\x93\x92\x4e\x8a\x52\xfe\x93\x1b\x6f\xef\xf0\x7f\x84\x4b\xf5\xe6\xb2\x7e\x50\x7b\xc3\xa3\xb8\x17\x6e\xe2\xd3\xa4\xb1\x24\x9a\x8f\x8b\x84\x71\x76\xfb\x2d\xa8\x21\x8e\xa3\x7d\x0d\x0f\x85\xd4\x19\x1e\xc6\x89\xa3\x96\x79\xdb\x33\xf2\x34\x22\xa0\x21\x83\x56\x37\x26\x43\x9e\xab\x85\xd9\x3a\xbb\x98\x70\x1e\xf1\x69\x28\xb5\xda\xa3\xe1\x5a\xee\xb7\x93\x89\xb6\xc8\x79\xd4\x37\x22\x0c\x4d\xa2\xe8\x9c\xa7\xf6\x46\xe4\x98\x26\x81\xa7\x31\xc5\x6c\xfc\x1c\xae\xda\xbf\x34\xae\x6e\x28\x14\x6c\x41\x39\xc1\x3a\xe1\x9a\xee\x9e\xef\xe4\x13\x5a\xb0\x62\x3b\x16\xe0\x8e\xc5\x99\x46\x51\x9e\x8f\xc0\xd6\xe0\xc9\x48\xe7\x50\x85\x84\x5a\x49\xd5\x38\x4c\x93\x40\x32\xa8\x69\xec\xbf\xa6\xa5\xde\x27\x4f\xa0\x47\xa9\xf7\x5d\x09\x60\xb5\x11\x38\xf6\x88\xcb\x9e\x2d\xbd\xbe\xd2\xe1\x32\xa6\xfd\x59\x83\xdc\x81\x69\x94\x62\x8c\x6d\xfd\x95\xf1\x51\x66\xc8\xbf\x61\x38\xf7\xa8\x84\x78\x1d\xfc\xb9\x36\x14\xef\x15\x7c\xa0\xca\xfe\x67\x70\x9e\x3f\x4b\xbd\xef\x5d\x3f\x5f\xc7\x5f\xa4\xd0\x99\xda\xd0\x3f\x63\x51\x13\xa6\x63\xa8\x73\x44\x63\xa8\x9c\x78\xbc\xe1\xd9\xa7\x1d\x03\xa6\x12\x0c\xee\x95\xe3\x2b\x95\x0e\xa9\x41\xab\x0e\xd5\x93\x85\x9b\x9a\x6a\xe9\xa9\xa0\x77\x83\xee\x90\x40\xa3\x3b\x51\xba\x14\x98\x1f\xad\xd0\xc3\xdd\xae\xb0\x5d\x6d\x1b\xe7\x27\x08\xda\x15\x04\xdb\xe9\xb4\xf8\x5f\x04\xbb\xa4\xed\xbb\x9e\x14\x17\x2f\x38\x21\x72\x07\xd4\x07\x66\x50\xe2\x11\x4b\x72\x2b\x5a\xe3\x91\x10\x1c\xd1\x6c\xb5\x95\xee\xec\x43\x68\xc2\x69\x55\x96\xa8\xdc\x08\xf0\x5b\x86\xb5\x63\xf8\xb3\x13\x4e\x94\x80\xc6\x68\x43\x90\xeb\x8d\x47\x4a\xc2\x6a\x9f\x57\xba\x2b\xfc\x12\x1a\x32\x77\x32\x84\xb7\xec\x43\x3f\x70\x44\x72\xf1\xa2\x3e\x14\xb7\xcd\xbe\xe7\x74\x54\x0b\xb7\x25\x56\x44\xf3\x3d\xf0\x94\xc5\x19\xac\x08\x43\x7a\xc6\x30\xa1\x7f\xe1\x35\x8b\x44\x6c\x65\x08\x06\x6b\xf4\x3f\x15\x88\xbe\x95\x02\xcc\x9c\xff\xc5\xcb\x74\xc2\x80\xf3\xaf\x06\x15\xe5\x87\xce\xfd\x42\x34\x31\x2a\x0c\x0f\xb9\x1f\x71\xb8\xd7\xe6\xdc\xde\x18\x6a\x1f\x3d\xc1\x49\x4b\xbd\xa7\x0c\xe6\x6f\x98\x93\xff\x0d\x00\x00\xff\xff\x98\xcc\x07\xa4\x7d\x25\x00\x00")
  130. func templateServerConfTmplBytes() ([]byte, error) {
  131. return bindataRead(
  132. _templateServerConfTmpl,
  133. "template/server.conf.tmpl",
  134. )
  135. }
  136. func templateServerConfTmpl() (*asset, error) {
  137. bytes, err := templateServerConfTmplBytes()
  138. if err != nil {
  139. return nil, err
  140. }
  141. info := bindataFileInfo{name: "template/server.conf.tmpl", size: 9597, mode: os.FileMode(420), modTime: time.Unix(1504196445, 0)}
  142. a := &asset{bytes: bytes, info: info}
  143. return a, nil
  144. }
  145. // Asset loads and returns the asset for the given name.
  146. // It returns an error if the asset could not be found or
  147. // could not be loaded.
  148. func Asset(name string) ([]byte, error) {
  149. cannonicalName := strings.Replace(name, "\\", "/", -1)
  150. if f, ok := _bindata[cannonicalName]; ok {
  151. a, err := f()
  152. if err != nil {
  153. return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
  154. }
  155. return a.bytes, nil
  156. }
  157. return nil, fmt.Errorf("Asset %s not found", name)
  158. }
  159. // MustAsset is like Asset but panics when Asset would return an error.
  160. // It simplifies safe initialization of global variables.
  161. func MustAsset(name string) []byte {
  162. a, err := Asset(name)
  163. if err != nil {
  164. panic("asset: Asset(" + name + "): " + err.Error())
  165. }
  166. return a
  167. }
  168. // AssetInfo loads and returns the asset info for the given name.
  169. // It returns an error if the asset could not be found or
  170. // could not be loaded.
  171. func AssetInfo(name string) (os.FileInfo, error) {
  172. cannonicalName := strings.Replace(name, "\\", "/", -1)
  173. if f, ok := _bindata[cannonicalName]; ok {
  174. a, err := f()
  175. if err != nil {
  176. return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
  177. }
  178. return a.info, nil
  179. }
  180. return nil, fmt.Errorf("AssetInfo %s not found", name)
  181. }
  182. // AssetNames returns the names of the assets.
  183. func AssetNames() []string {
  184. names := make([]string, 0, len(_bindata))
  185. for name := range _bindata {
  186. names = append(names, name)
  187. }
  188. return names
  189. }
  190. // _bindata is a table, holding each asset generator, mapped to its name.
  191. var _bindata = map[string]func() (*asset, error){
  192. "template/ccd.file.tmpl": templateCcdFileTmpl,
  193. "template/client.ovpn.tmpl": templateClientOvpnTmpl,
  194. "template/dh4096.pem.tmpl": templateDh4096PemTmpl,
  195. "template/iptables.tmpl": templateIptablesTmpl,
  196. "template/server.conf.tmpl": templateServerConfTmpl,
  197. }
  198. // AssetDir returns the file names below a certain
  199. // directory embedded in the file by go-bindata.
  200. // For example if you run go-bindata on data/... and data contains the
  201. // following hierarchy:
  202. // data/
  203. // foo.txt
  204. // img/
  205. // a.png
  206. // b.png
  207. // then AssetDir("data") would return []string{"foo.txt", "img"}
  208. // AssetDir("data/img") would return []string{"a.png", "b.png"}
  209. // AssetDir("foo.txt") and AssetDir("notexist") would return an error
  210. // AssetDir("") will return []string{"data"}.
  211. func AssetDir(name string) ([]string, error) {
  212. node := _bintree
  213. if len(name) != 0 {
  214. cannonicalName := strings.Replace(name, "\\", "/", -1)
  215. pathList := strings.Split(cannonicalName, "/")
  216. for _, p := range pathList {
  217. node = node.Children[p]
  218. if node == nil {
  219. return nil, fmt.Errorf("Asset %s not found", name)
  220. }
  221. }
  222. }
  223. if node.Func != nil {
  224. return nil, fmt.Errorf("Asset %s not found", name)
  225. }
  226. rv := make([]string, 0, len(node.Children))
  227. for childName := range node.Children {
  228. rv = append(rv, childName)
  229. }
  230. return rv, nil
  231. }
  232. type bintree struct {
  233. Func func() (*asset, error)
  234. Children map[string]*bintree
  235. }
  236. var _bintree = &bintree{nil, map[string]*bintree{
  237. "template": &bintree{nil, map[string]*bintree{
  238. "ccd.file.tmpl": &bintree{templateCcdFileTmpl, map[string]*bintree{}},
  239. "client.ovpn.tmpl": &bintree{templateClientOvpnTmpl, map[string]*bintree{}},
  240. "dh4096.pem.tmpl": &bintree{templateDh4096PemTmpl, map[string]*bintree{}},
  241. "iptables.tmpl": &bintree{templateIptablesTmpl, map[string]*bintree{}},
  242. "server.conf.tmpl": &bintree{templateServerConfTmpl, map[string]*bintree{}},
  243. }},
  244. }}
  245. // RestoreAsset restores an asset under the given directory
  246. func RestoreAsset(dir, name string) error {
  247. data, err := Asset(name)
  248. if err != nil {
  249. return err
  250. }
  251. info, err := AssetInfo(name)
  252. if err != nil {
  253. return err
  254. }
  255. err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
  256. if err != nil {
  257. return err
  258. }
  259. err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
  260. if err != nil {
  261. return err
  262. }
  263. err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
  264. if err != nil {
  265. return err
  266. }
  267. return nil
  268. }
  269. // RestoreAssets restores an asset under the given directory recursively
  270. func RestoreAssets(dir, name string) error {
  271. children, err := AssetDir(name)
  272. // File
  273. if err != nil {
  274. return RestoreAsset(dir, name)
  275. }
  276. // Dir
  277. for _, child := range children {
  278. err = RestoreAssets(dir, filepath.Join(name, child))
  279. if err != nil {
  280. return err
  281. }
  282. }
  283. return nil
  284. }
  285. func _filePath(dir, name string) string {
  286. cannonicalName := strings.Replace(name, "\\", "/", -1)
  287. return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
  288. }