Skip to content

Instantly share code, notes, and snippets.

@07151129
Last active November 4, 2024 15:12
Show Gist options
  • Save 07151129/887be9431d32d822975cc494613c7f06 to your computer and use it in GitHub Desktop.
Save 07151129/887be9431d32d822975cc494613c7f06 to your computer and use it in GitHub Desktop.
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zHMAANRzAADccwAA5nMAAPBzAAD4cwAAAnQAAAx0AAAUdAAAHHQAACR0AAAwdAAAOnQAAER0AABOdAAAWHQAAGJ0AABudAAAenQAAAAAAAC8cQAA1HEAAOxxAAD6cQAADnIAACRyAAA6cgAASnIAAF5yAABwcgAAhnIAAKByAACwcgAAzHIAAORyAAD0cgAABHMAAB5zAAA8cwAARHMAAFhzAABmcwAAgnMAAJRzAAAAAAAApHMAALJzAADAcwAAzHMAANRzAADccwAA5nMAAPBzAAD4cwAAAnQAAAx0AAAUdAAAHHQAACR0AAAwdAAAOnQAAER0AABOdAAAWHQAAGJ0AABudAAAenQAAAAAAADVAERlbGV0ZUNyaXRpY2FsU2VjdGlvbgDxAEVudGVyQ3JpdGljYWxTZWN0aW9uAAAcAUV4aXRQcm9jZXNzAMYBR2V0Q3VycmVudFByb2Nlc3MAxwFHZXRDdXJyZW50UHJvY2Vzc0lkAMsBR2V0Q3VycmVudFRocmVhZElkAAAFAkdldExhc3RFcnJvcgAAFwJHZXRNb2R1bGVIYW5kbGVBAABHAkdldFByb2NBZGRyZXNzAABzAkdldFN5c3RlbURpcmVjdG9yeUEAfQJHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZQCZAkdldFRpY2tDb3VudAAA7QJJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uACgDTGVhdmVDcml0aWNhbFNlY3Rpb24AACsDTG9hZExpYnJhcnlBAAAuA0xvYWRMaWJyYXJ5VwAAmANRdWVyeVBlcmZvcm1hbmNlQ291bnRlcgBtBFNldFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgB6BFNsZWVwAIgEVGVybWluYXRlUHJvY2VzcwAAjwRUbHNHZXRWYWx1ZQCcBFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgAAvARWaXJ0dWFsUHJvdGVjdAAAvwRWaXJ0dWFsUXVlcnkAADgAX19kbGxvbmV4aXQAlABfYW1zZ19leGl0AABjAV9pbml0dGVybQBnAV9pb2IAAM8BX2xvY2sAdwJfb25leGl0AEwDX3VubG9jawAgBGFib3J0AC8EY2FsbG9jAABKBGZwcmludGYATARmcHV0YwBNBGZwdXRzAFEEZnJlZQAAWwRmd3ByaW50ZgAA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aWQqIHRoaXMsIHZvaWQqIGZyYW1lLCB2b2lkKiBjb25zdCByZXN1bHQpIHsKICAgIHVpbnQ4X3QqIGNvZGUgPSAodWludDhfdCopZnJhbWUgKyAweGM7CiAgICB2b2lkKiBvYmplY3QgPSAodWludDhfdCopZnJhbWUgKyAweDg7CgogICAgd2NoYXJfdCogc3QgPSBOVUxMOwogICAgRkZyYW1lX19TdGVwUHRyKGZyYW1lLCBvYmplY3QsICZzdCk7IC8qIFBfR0VUX1NUUiAqLwogICAgLyogUF9GSU5JU0ggKi8KICAgIGlmICgqY29kZSA9PSAweDQyKSAvKiBFWF9EZWJ1Z0luZm8gKi8KICAgICAgICBGRnJhbWVfX1N0ZXBQdHIoZnJhbWUsIG9iamVjdCwgTlVMTCk7CiAgICBjb2RlKys7CgogICAgaWYgKHN0ICYmIGZ3cHJpbnRmKHN0ZGVyciwgTCJFWFRSQTogJXMiLCBzdCkgPiAwKQogICAgICAgIGZwdXRjKCdcbicsIHN0ZGVycik7Cn0KCnN0YXRpYyB1aW50cHRyX3QgbmF0aXZlc1tdID0geyh1aW50cHRyX3QpRXh0cmFfX2V4ZWNOYXRpdmVFY2hvfTsKCnZvaWQgaW5pdCh1aW50cHRyX3QgcmVnaXN0ZXJfbmF0aXZlLCB1aW50cHRyX3QgZmZyYW1lX3N0ZXApIHsKICAgIGlmIChHUmVnaXN0ZXJOYXRpdmVQdHIgfHwgRkZyYW1lX19TdGVwUHRyKQogICAgICAgIHJldHVybjsKICAgIEdSZWdpc3Rlck5hdGl2ZVB0ciA9IChfX3R5cGVvZl9fIChHUmVnaXN0ZXJOYXRpdmVQdHIpKXJlZ2lzdGVyX25hdGl2ZTsKICAgIEZGcmFtZV9fU3RlcFB0ciA9IChfX3R5cGVvZl9fIChGRnJhbWVfX1N0ZXBQdHIpKWZmcmFtZV9zdGVwOwogICAgZm9yIChpbnQzMl90IGkgPSBOQVRJVkVTX1NUQVJUOyBpIDwgc2l6ZW9mKG5hdGl2ZXMpIC8gc2l6ZW9mKCpuYXRpdmVzKTsgaSsrKQogICAgICAgIEdSZWdpc3Rlck5hdGl2ZVB0cihpLCBuYXRpdmVzW2ldKTsKfQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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dGRpby5oPgojaW5jbHVkZSA8d2NoYXIuaD4KI2luY2x1ZGUgPHdpbmRvd3MuaD4KI2luY2x1ZGUgPHdpbm50Lmg+CgojaW5jbHVkZSAicGF0Y2guaCIKCmludDMyX3QgbndpbmRvd19leGVjX2RlYnVnX3JldGFkZHIgPSAwOwppbnQzMl90IG53aW5kb3dfQ29weVN0YXR1c0ljb25JbmZvX3JldGFkZHIgPSAwOwoKX19hdHRyaWJ1dGVfXyAoKGNkZWNsKSkKdm9pZCByZXBsX1hNTFVJTG9nRXJyb3IoY29uc3Qgd2NoYXJfdCogZm10LCAuLi4pIHsKICAgIHZhX2xpc3QoYXJncyk7CiAgICB2YV9zdGFydChhcmdzLCBmbXQpOwogICAgaWYgKHZmd3ByaW50ZihzdGRlcnIsIGZtdCwgYXJncykgPiAwKQogICAgICAgIGZwdXRjKCdcbicsIHN0ZGVycik7CiAgICB2YV9lbmQoYXJncyk7Cn0KCl9fYXR0cmlidXRlX18gKChjZGVjbCkpCnZvaWQgcmVwbF9GU3RyaW5nX1ByaW50Zih2b2lkKiB0aGlzLCBjb25zdCB3Y2hhcl90KiBmbXQsIC4uLikgewogICAgdmFfbGlzdChhcmdzKTsKICAgIHZhX3N0YXJ0KGFyZ3MsIGZtdCk7CiAgICBpZiAodmZ3cHJpbnRmKHN0ZGVyciwgZm10LCBhcmdzKSA+IDApCiAgICAgICAgZnB1dGMoJ1xuJywgc3RkZXJyKTsKICAgIHZhX2VuZChhcmdzKTsKfQoKX19hdHRyaWJ1dGVfXyAoKGNkZWNsKSkKdm9pZCBud2luZG93X2V4ZWNfZGVidWdfcmVwbChjb25zdCB3Y2hhcl90KiBtc2cpIHsKICAgIGlmIChmd3ByaW50ZihzdGRlcnIsIEwiVUkgRGVidWc6ICVzIiwgbXNnKSA+IDApCiAgICAgICAgZnB1dGMoJ1xuJywgc3RkZXJyKTsKfQoKX19hdHRyaWJ1dGVfXyAoKHN0ZGNhbGwpKQppbnQgcmVwbF9OQ29uc29sZVduZF9Jc0RlQnVmZihpbnQgYTAsIGludCBhMSkgewogICAgcmV0dXJuIDA7Cn0KCl9fYXR0cmlidXRlX18gKChjZGVjbCkpCmludCBteV9hdXRob3JpdGEoKSB7CiAgICByZXR1cm4gMTsKfQoKX19hdHRyaWJ1dGVfXyAoKHN0ZGNhbGwpKQppbnQgcmVwbF9Db21waWxlVUlTY3JpcHQodm9pZCogYTApIHsKICAgIHJldHVybiAwOwp9Cgp2b2lkIG53aW5kb3dfZXhlY19kZWJ1Z190cmFtcGwoKTsKdm9pZCBud2luZG93X0NvcHlTdGF0dXNJY29uSW5mb190cmFtcGwoKTsKCnN0YXRpYyB2b2lkIHBhdGNoX253aW5kb3coY29uc3Qgdm9pZCogbndpbmRvdykgewogICAgZnByaW50ZihzdGRlcnIsICJud2luZG93IEAgJXBcbiIsIG53aW5kb3cpOwoKICAgIGludDMyX3QgbndpbmRvd19vZmZzID0gMDsKICAgIHVpbnQzMl90IGJhc2UgPSAweDEwMDAwMDAwOwoKICAgIGlmICgodWludDMyX3QpbndpbmRvd19vZmZzICE9IGJhc2UpIHsKICAgICAgICBud2luZG93X29mZnMgPSAodWludDMyX3QpbndpbmRvdyAtIGJhc2U7CiAgICAgICAgZnByaW50ZihzdGRlcnIsICJud2luZG93IG9mZnNldCAweCV4XG4iLCBud2luZG93X29mZnMpOwogICAgfQoKICAgIG53aW5kb3dfZXhlY19kZWJ1Z19yZXRhZGRyID0gbndpbmRvd19vZmZzICsgMHgxMDM0ZmRhZjsKCiAgICAvKiBNYXJrIGRlYnVmZnMgYXMgYnVmZnMgKi8KICAgIHVpbnQ4X3Qgbm9wczZbXSA9IHsweDkwLCAweDkwLCAweDkwLCAweDkwLCAweDkwLCAweDkwfTsKICAgIHBhdGNoVGV4dCgodm9pZCopKDB4MTAyNGU3NzggKyBud2luZG93X29mZnMpLCBub3BzNiwgTlVMTCwgc2l6ZW9mKG5vcHM2KSk7CgogICAgLyogQ29tcGlsZSBJbnRlcmZhY2UueGRhdCBmcm9tIFVJRWRpdG9yIEludGVyZmFjZSAqLnhtbCAqLwogICAgdWludDhfdCBtb3ZiXzFfZWN4W10gPSB7MHhiMSwgMHgwMX07CiAgICBwYXRjaFRleHQoKHZvaWQqKSgweDEwM2EwODU1ICsgbndpbmRvd19vZmZzKSwgbW92Yl8xX2VjeCwgTlVMTCwgc2l6ZW9mKG1vdmJfMV9lY3gpKTsKCiAgICByZXBsYWNlRnVuY0F0QWRkcigodm9pZCopKDB4MTAzNGZkYTkgKyBud2luZG93X29mZnMpLCBud2luZG93X2V4ZWNfZGVidWdfdHJhbXBsLCBOVUxMKTsKICAgIHJlcGxhY2VGdW5jQXRBZGRyKCh2b2lkKikoMHgxMDM5ZmM4MCArIG53aW5kb3dfb2ZmcyksIHJlcGxfWE1MVUlMb2dFcnJvciwgTlVMTCk7CiAgICByZXBsYWNlRnVuY0F0QWRkcigodm9pZCopKDB4MTA0MDcxZDAgKyBud2luZG93X29mZnMpLCBteV9hdXRob3JpdGEsIE5VTEwpOwogICAgcmVwbGFjZUZ1bmNBdEFkZHIoKHZvaWQqKSgweDEwMzlmYmMwICsgbndpbmRvd19vZmZzKSwgcmVwbF9YTUxVSUxvZ0Vycm9yLCBOVUxMKTsKICAgIC8qIERpc2FibGUgVUlTY3JpcHQgcmVjb21waWxlLi4gKi8KICAgIHJlcGxhY2VGdW5jQXRBZGRyKCh2b2lkKikoMHgxMDNhMDlkMCArIG53aW5kb3dfb2ZmcyksIHJlcGxfQ29tcGlsZVVJU2NyaXB0LCBOVUxMKTsKfQoKX19hdHRyaWJ1dGVfXygoc3RkY2FsbCkpCkhNT0RVTEUgY29yZV9sZF9saWJfcmVwbChjb25zdCB3Y2hhcl90KiBwYXRoKSB7CiAgICBmd3ByaW50ZihzdGRlcnIsIEwiY29yZTogbGQgJXMuZGxsXG4iLCBwYXRoKTsKCiAgICB2b2lkKiByZXQgPSBMb2FkTGlicmFyeVcocGF0aCk7CiAgICBpZiAod2Nzc3RyKHBhdGgsIEwiTldpbmRvdyIpICE9IE5VTEwpCiAgICAgICAgcGF0Y2hfbndpbmRvdyhyZXQpOwoKICAgIHJldHVybiByZXQ7Cn0KCnZvaWQgY29yZV9sZF90cmFtcGwoKTsKCnN0YXRpYyB2b2lkIGluaXQoSEFORExFIGhNb2R1bGUpIHsKICAgIGZwcmludGYoc3RkZXJyLCAiaG9vazogaW5pdFxuIik7CgogICAgdWludDMyX3QgY29yZSA9ICh1aW50MzJfdClHZXRNb2R1bGVIYW5kbGUoImNvcmUuZGxsIik7CiAgICBpZiAoY29yZSA9PSAwKSB7CiAgICAgICAgZnByaW50ZihzdGRlcnIsICJmYXRhbDogY29yZSB3YXMgbm90IGxvYWRlZCIpOwogICAgICAgIGFib3J0KCk7CiAgICB9CiAgICBpbnQzMl90IGNvcmVfb2ZmcyA9IDA7CiAgICB1aW50MzJfdCBjb3JlX2Jhc2UgPSAweDE1MDAwMDAwOwogICAgaWYgKGNvcmUgIT0gY29yZV9iYXNlKSB7CiAgICAgICAgY29yZV9vZmZzID0gY29yZSAtIGNvcmVfYmFzZTsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNvcmUgb2Zmc2V0IDB4JXhcbiIsIGNvcmVfb2Zmcyk7CiAgICB9CgogICAgdWludDMyX3QgRlN0cmluZ19QcmludGYgPSAqKHVpbnQzMl90KikoMHgxNTA1MDZkMCtjb3JlX29mZnMpOwoKICAgIHJlcGxhY2VGdW5jQXRBZGRyKCh2b2lkKilGU3RyaW5nX1ByaW50ZiwgcmVwbF9GU3RyaW5nX1ByaW50ZiwgTlVMTCk7CiAgICByZXBsYWNlRnVuY0F0QWRkcigodm9pZCopKDB4MTUwMzI3YTAgKyBjb3JlX29mZnMpLCBjb3JlX2xkX3RyYW1wbCwgTlVMTCk7Cn0KCkJPT0wgQVBJRU5UUlkgRGxsTWFpbihIQU5ETEUgaE1vZHVsZSwgRFdPUkQgcmVhc29uLCBMUFZPSUQgbHBSZXNlcnZlZCkgewogICAgc3dpdGNoIChyZWFzb24pIHsKICAgICAgICBjYXNlIERMTF9QUk9DRVNTX0FUVEFDSDoKICAgICAgICAgICAgaW5pdChoTW9kdWxlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBETExfUFJPQ0VTU19ERVRBQ0g6CiAgICAgICAgY2FzZSBETExfVEhSRUFEX0FUVEFDSDoKICAgICAgICBjYXNlIERMTF9USFJFQURfREVUQUNIOgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGJyZWFrOwogICAgfQoKICAgIHJldHVybiBUUlVFOwp9CgojaWZkZWYgV1JBUF9ESU5QVVQKICAgICNkZWZpbmUgV1JBUF9GTl9SRVRfVCBIUkVTVUxUCiAgICAjZGVmaW5lIFdSQVBfRk5fSUZBQ0UgV1JBUF9GTl9SRVRfVCBXSU5BUEkgRGlyZWN0SW5wdXQ4Q3JlYXRlKEhJTlNUQU5DRSBoaW5zdCwgRFdPUkQgZHdWZXJzaW9uLCBSRUZJSUQgcmlpZGx0ZiwgTFBWT0lEKiBwcHZPdXQsIExQVU5LTk9XTiBwdW5rT3V0ZXIpCiAgICAjZGVmaW5lIFdSQVBfRk5fVCBXUkFQX0ZOX1JFVF9UKCopKEhJTlNUQU5DRSwgRFdPUkQsIFJFRklJRCwgTFBWT0lEKiwgTFBVTktOT1dOKQogICAgI2RlZmluZSBXUkFQX0ZOX0FSR1MgaGluc3QsIGR3VmVyc2lvbiwgcmlpZGx0ZiwgcHB2T3V0LCBwdW5rT3V0ZXIKICAgICNkZWZpbmUgV1JBUF9GTl9FWFAgIkRpcmVjdElucHV0OENyZWF0ZSIKICAgICNkZWZpbmUgV1JBUF9ETExfTkFNRSAiZGlucHV0OCIKI2Vsc2UKICAgICNkZWZpbmUgV1JBUF9GTl9SRVRfVCB2b2lkKgogICAgI2RlZmluZSBXUkFQX0ZOX0lGQUNFIFdSQVBfRk5fUkVUX1QgV0lOQVBJIGQzZF9jcmVhdGUobG9uZyBTREtWZXJzaW9uKQogICAgI2RlZmluZSBXUkFQX0ZOX1QgV1JBUF9GTl9SRVRfVCgqKShEV09SRCkKICAgICNkZWZpbmUgV1JBUF9GTl9BUkdTIFNES1ZlcnNpb24KICAgICNkZWZpbmUgV1JBUF9GTl9FWFAgIkRpcmVjdDNEQ3JlYXRlOSIKICAgICNkZWZpbmUgV1JBUF9ETExfTkFNRSAiZDNkOSIKI2VuZGlmCgpXUkFQX0ZOX0lGQUNFIF9fYXNtX18gKCJfIldSQVBfRk5fRVhQKTsKCldSQVBfRk5fSUZBQ0UgewogICAgc3RhdGljIEhJTlNUQU5DRSBvcmlnRExMOwogICAgaWYgKCFvcmlnRExMKSB7CiAgICAgICAgY2hhciBwYXRoW01BWF9QQVRIXTsKCiAgICAgICAgbWVtc2V0KHBhdGgsIDAsIHNpemVvZihwYXRoKSk7CiAgICAgICAgR2V0U3lzdGVtRGlyZWN0b3J5KHBhdGgsIE1BWF9QQVRIKTsKCiAg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ZTsKCiAgICBzdGF0aWMgc2l6ZV90IGk7CiAgICAvKiBObyByb29tIGluIHB0ciB0YWJsZSB0byBzdG9yZSByZXBsICovCiAgICBpZiAoaSA+PSBzaXplb2Yoam1wX3B0cnMpIC8gc2l6ZW9mKCpqbXBfcHRycykpCiAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgIGptcF9wdHJzW2ldID0gKHVpbnQzMl90KXJlcGw7CiAgICB1aW50MzJfdCBwdHIgPSAodWludDMyX3QpJmptcF9wdHJzW2ldOwogICAgaSsrOwoKICAgIHVpbnQ4X3QgcGF0Y2hbXSA9IHsweGZmLCAweDI1LCAvKiBqbXAgKnB0ciovCiAgICAgICAgICAgICAgICAgICAgICAgcHRyICYgMHhmZiwKICAgICAgICAgICAgICAgICAgICAgICAocHRyICYgMHhmZjAwKSA+PiAweDgsCiAgICAgICAgICAgICAgICAgICAgICAgKHB0ciAmIDB4ZmYwMDAwKSA+PiAweDEwLAogICAgICAgICAgICAgICAgICAgICAgIChwdHIgJiAweGZmMDAwMDAwKSA+PiAweDE4LAogICAgICAgICAgICAgICAgICAgICAgIH07CgogICAgcGF0Y2hUZXh0KHNyYywgcGF0Y2gsIGJhaywgc2l6ZW9mKHBhdGNoKSk7CgogICAgcmV0dXJuIHRydWU7Cn0KCmJvb2wgcGF0Y2hUZXh0KHZvaWQqIGRzdCwgY29uc3QgdWludDhfdCogcmVwbCwgdWludDhfdCogYmFrLCBzaXplX3QgcmVwbFN6KSB7CiAgICBpZiAoIWRzdCB8fCAhcmVwbCkKICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgRFdPUkQgb2xkX3Byb3QgPSAwOwoKICAgIGlmICghVmlydHVhbFByb3RlY3QoZHN0LCByZXBsU3osIFBBR0VfUkVBRFdSSVRFLCAmb2xkX3Byb3QpKQogICAgICAgIHJldHVybiBmYWxzZTsKCiAgICBpZiAoYmFrKQogICAgICAgIG1lbWNweShiYWssIGRzdCwgcmVwbFN6KTsKICAgIG1lbWNweShkc3QsIHJlcGwsIHJlcGxTeik7CgogICAgVmlydHVhbFByb3RlY3QoZHN0LCByZXBs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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.lineage2.co.kr/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="AbsoluteSize">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:int" name="width" use="required"/>
<xs:attribute type="xs:int" name="height" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:complexType name="BarCtrlType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="ForeTexture" use="required"/>
<xs:attribute type="xs:string" name="BackTexture" use="required"/>
<xs:attribute type="xs:string" name="ForeLeftTexture" use="required"/>
<xs:attribute type="xs:string" name="BackLeftTexture" use="required"/>
<xs:attribute type="xs:string" name="ForeRightTexture" use="required"/>
<xs:attribute type="xs:string" name="BackRightTexture" use="required"/>
<xs:attribute type="xs:int" name="USize" use="required"/>
<xs:attribute type="xs:int" name="VSize" use="required"/>
</xs:complexType>
<xs:complexType name="CharacterViewportWindowType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:float" name="CharacterScale" use="required"/>
<xs:attribute type="xs:int" name="CharacterOffsetX" use="required"/>
<xs:attribute type="xs:int" name="CharacterOffsetY" use="required"/>
<xs:attribute type="xs:int" name="CameraDistMax" use="required"/>
<xs:attribute type="xs:int" name="CameraDistMin" use="required"/>
<xs:attribute type="xs:int" name="DefaultCameraPitch" use="required"/>
<xs:attribute type="xs:int" name="DefaultCameraYaw" use="required"/>
<xs:attribute type="xs:int" name="ZoomRate" use="required"/>
<xs:attribute type="xs:int" name="RotationRate" use="required"/>
<xs:attribute type="xs:string" name="MaskTex" use="required"/>
<xs:attribute type="xs:int" name="NpcID"/>
</xs:complexType>
<xs:element name="ChatChannel">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:Color" name="Color" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="Index" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="ChatChannelDefinition">
<xs:complexType>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="ui:ChatChannel" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="ChatWindowType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="lineGap" use="required"/>
<xs:attribute type="xs:int" name="NextLineOffsetX" use="optional"/>
</xs:complexType>
<xs:complexType name="CheckBoxType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:boolean" name="checked" use="optional"/>
<xs:attribute type="xs:boolean" name="leftAlign" use="optional"/>
<xs:attribute type="xs:int" name="maxWidth" use="optional"/>
<xs:attribute type="xs:int" name="string" use="required"/>
<xs:attribute type="xs:string" name="CheckTexture" use="optional"/>
<xs:attribute type="xs:string" name="UnCheckTexture" use="optional"/>
<xs:attribute type="xs:string" name="DisableTexture" use="optional"/>
<xs:attribute type="xs:string" name="DisableCheckTexture" use="optional"/>
<xs:attribute type="xs:int" name="titleIndex" use="optional"/>
<xs:attribute type="xs:string" name="TitleText" use="optional"/>
</xs:complexType>
<xs:complexType name="ComboBoxType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:ComboItem" maxOccurs="unbounded" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
<xs:element name="ComboItem">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="sysstring" use="optional"/>
<xs:attribute type="xs:int" name="systemMsg" use="optional"/>
<xs:attribute type="xs:string" name="text" use="optional"/>
<xs:attribute type="xs:int" name="reserved" use="optional"/>
</xs:complexType>
</xs:element>
<xs:complexType name="DrawPanelType">
<xs:attribute type="xs:boolean" name="AutoSize" use="required"/>
</xs:complexType>
<xs:complexType name="EditBoxType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="maxLength" use="optional"/>
<xs:attribute type="xs:boolean" name="bShowCursor" use="optional"/>
<xs:attribute type="xs:boolean" name="ChatMarkOn" use="required"/>
<xs:attribute type="xs:int" name="OffsetX" use="optional"/>
<xs:attribute type="xs:boolean" name="bCandidateBoxShowUpPos" use="required"/>
<xs:attribute type="xs:string" name="AutoCompletionType" use="required"/>
<xs:attribute type="xs:string" name="editBoxType" use="required"/>
</xs:complexType>
<xs:element name="AutoCompletionType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="NotUsed"/>
<xs:enumeration value="Normal"/>
<xs:enumeration value="PostBox"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:complexType name="EffectButtonType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<!-- <xs:element ref="ui:Type" minOccurs="1" xmlns:ui="http://www.lineage2.co.kr/ui"/> -->
</xs:choice>
<xs:attribute type="xs:string" name="Type" use="required"/>
<xs:attribute type="xs:string" name="NormalTex"/>
<xs:attribute type="xs:string" name="PushedTex"/>
<xs:attribute type="xs:string" name="HighlightTex"/>
<xs:attribute type="xs:string" name="EffectTex1"/>
<xs:attribute type="xs:string" name="EffectTex2"/>
</xs:complexType>
<xs:complexType name="FishViewportWindowType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="texBack" use="required"/>
<xs:attribute type="xs:string" name="texClock" use="required"/>
<xs:attribute type="xs:string" name="texFishHPBar" use="required"/>
<xs:attribute type="xs:string" name="texFishHPBarBack" use="required"/>
<xs:attribute type="xs:string" name="texFishingEffect" use="required"/>
<xs:attribute type="xs:string" name="texIconPumping" use="required"/>
<xs:attribute type="xs:string" name="texIconReeling" use="required"/>
<xs:attribute type="xs:string" name="texFishFakeHPBarWarning" use="required"/>
</xs:complexType>
<xs:complexType name="FlashCtrlType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="FlashFile"/>
</xs:complexType>
<xs:complexType name="FontType">
<xs:choice maxOccurs="unbounded">
<xs:element ref="ui:Stroke" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:Shadow" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="name"/>
<xs:attribute type="xs:string" name="fileName"/>
<xs:attribute type="xs:int" name="size"/>
<xs:attribute type="xs:int" name="index"/>
<xs:attribute type="xs:int" name="lineGap"/>
<xs:attribute type="xs:boolean" name="bIndex"/> <!-- duplicate? -->
<xs:attribute type="xs:string" name="location"/>
<xs:attribute type="xs:int" name="underlineOffset"/>
</xs:complexType>
<xs:complexType name="HtmlCtrlType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="ViewType"/>
</xs:complexType>
<xs:element name="Stroke">
<xs:complexType>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="ui:volume" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="volume" use="required" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:complexType>
</xs:element>
<xs:element name="volume">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="thick"/>
<xs:enumeration value="thin"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Shadow">
<xs:complexType>
<xs:attribute type="xs:int" name="offsetX"/>
<xs:attribute type="xs:int" name="offsetY"/>
</xs:complexType>
</xs:element>
<xs:element name="Type" type="xs:NCName"/>
<xs:element name="Size">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="ui:AbsoluteSize" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:RelativeSize" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="RelativeSize">
<xs:complexType>
<xs:attribute type="xs:int" name="widthRate" use="required"/>
<xs:attribute type="xs:int" name="heightRate" use="required"/>
<xs:attribute type="xs:int" name="offsetWidth" use="required"/>
<xs:attribute type="xs:int" name="offsetHeight" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Position">
<xs:complexType>
<xs:attribute type="xs:string" name="relativePoint" use="optional"/>
<xs:attribute type="xs:string" name="anchorPoint" use="optional"/>
<xs:attribute type="xs:string" name="relativeTo" use="required"/>
<xs:attribute type="xs:int" name="offsetX" use="required"/>
<xs:attribute type="xs:int" name="offsetY" use="required"/>
<xs:attribute type="xs:boolean" name="anchored" use="required"/>
</xs:complexType>
</xs:element>
<xs:complexType name="Color">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:int" name="R"/>
<xs:attribute type="xs:int" name="G"/>
<xs:attribute type="xs:int" name="B"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="Tooltip">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="type" use="required"/>
<xs:attribute type="xs:int" name="text" use="optional"/>
<xs:attribute type="xs:string" name="appearanceTime" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="UseFont">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:Color" name="Color" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="styleName" use="required"/>
<xs:attribute type="xs:string" name="fontName" use="required"/>
<xs:attribute type="xs:int" name="appearanceTime" use="optional"/>
<xs:attribute type="xs:string" name="line" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="ScrollBarOffset">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:float" name="x" use="required"/>
<xs:attribute type="xs:float" name="y" use="required"/>
<xs:attribute type="xs:float" name="heightOffset" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:complexType name="DefaultPropertyType">
<xs:choice maxOccurs="unbounded">
<xs:element ref="ui:Size" minOccurs="0" maxOccurs="1" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:UseFont" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:Position" minOccurs="1" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:Tooltip" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:TabOrder" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:ScrollBarOffset" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="xs:string" name="extends" use="optional"/>
<xs:attribute type="xs:string" name="alwaysOnTop" use="optional"/>
<xs:attribute type="xs:string" name="virtual" use="optional"/>
<xs:attribute type="xs:string" name="alwaysOnBack" use="optional"/>
<xs:attribute type="xs:string" name="superChild" use="optional"/>
</xs:complexType>
<xs:element name="ButtonItem">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="OutLineUp"/>
<xs:attribute type="xs:string" name="OutLineDown"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="GaugeText">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="Texture" use="required"/>
<xs:attribute type="xs:int" name="FontWidth" use="required"/>
<xs:attribute type="xs:int" name="FontHeight" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="TextureCoords">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:float" name="u" use="optional"/>
<xs:attribute type="xs:float" name="v" use="optional"/>
<xs:attribute type="xs:float" name="usize"/>
<xs:attribute type="xs:float" name="vsize"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="frame">
<xs:complexType>
<xs:attribute type="xs:string" name="size" use="required"/>
<xs:attribute type="xs:string" name="direction"/>
<xs:attribute type="xs:boolean" name="exitbutton" use="optional"/>
<xs:attribute type="xs:string" name="LeftTextureName" use="optional"/>
<xs:attribute type="xs:string" name="MidTextureName" use="optional"/>
<xs:attribute type="xs:string" name="RightTextureName" use="optional"/>
<xs:attribute type="xs:string" name="MinimizeBtnTextureNormal" use="optional"/>
<xs:attribute type="xs:string" name="MinimizeBtnTexturePushed" use="optional"/>
<xs:attribute type="xs:string" name="CloseBtnTextureNormal" use="optional"/>
<xs:attribute type="xs:string" name="CloseBtnTexturePushed" use="optional"/>
<xs:attribute type="xs:int" name="LeftBackTextureWidth" use="optional"/>
<xs:attribute type="xs:int" name="MidBackTextureWidth" use="optional"/>
</xs:complexType>
</xs:element>
<xs:complexType name="ItemWindowType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:ButtonItem" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:BackgroundItem" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:SelectedItem" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:UnselectedItem" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:ExpandItem" minOccurs="0" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:BlankItem" minOccurs="0" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="col" use="optional"/>
<xs:attribute type="xs:int" name="row" use="optional"/>
<xs:attribute type="xs:int" name="maxItem" use="optional"/>
<xs:attribute type="xs:int" name="itemWidth" use="optional"/>
<xs:attribute type="xs:int" name="itemHeight" use="optional"/>
<xs:attribute type="xs:int" name="gapX" use="optional"/>
<xs:attribute type="xs:int" name="gapY" use="optional"/>
<xs:attribute type="xs:int" name="OffsetX" use="optional"/>
<xs:attribute type="xs:int" name="OffsetY" use="optional"/>
<xs:attribute type="xs:boolean" name="NoSelectItem" use="optional"/>
<xs:attribute type="xs:boolean" name="NoItemDrag" use="optional"/>
<xs:attribute type="xs:boolean" name="ButtonClick" use="optional"/>
<xs:attribute type="xs:boolean" name="UseCoolTime" use="optional"/>
<xs:attribute type="xs:boolean" name="noScroll" use="optional"/>
<xs:attribute type="xs:boolean" name="ShowIconFrame" use="optional"/>
<xs:attribute type="xs:string" name="ItemWndType" use="optional"/>
</xs:complexType>
<xs:element name="ItemWindowTypeEnum">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute name="ScrollType"/>
<xs:attribute name="SideButtonType"/>
<xs:attribute name="UpDownButtonType"/>
</xs:complexType>
</xs:element>
<xs:element name="BackgroundItem">
<xs:complexType>
<xs:attribute type="xs:int" name="width"/>
<xs:attribute type="xs:int" name="height"/>
<xs:attribute type="xs:string" name="texture"/>
</xs:complexType>
</xs:element>
<xs:element name="SelectedItem">
<xs:complexType>
<xs:attribute type="xs:int" name="width"/>
<xs:attribute type="xs:int" name="height"/>
<xs:attribute type="xs:string" name="texture"/>
</xs:complexType>
</xs:element>
<xs:element name="UnselectedItem">
<xs:complexType>
<xs:attribute type="xs:int" name="width"/>
<xs:attribute type="xs:int" name="height"/>
<xs:attribute type="xs:string" name="texture"/>
</xs:complexType>
</xs:element>
<xs:element name="BlankItem">
<xs:complexType>
<xs:attribute type="xs:int" name="width"/>
<xs:attribute type="xs:int" name="height"/>
<xs:attribute type="xs:string" name="texture"/>
</xs:complexType>
</xs:element>
<xs:element name="ExpandItem">
<xs:complexType>
<xs:attribute type="xs:int" name="width"/>
<xs:attribute type="xs:int" name="height"/>
<xs:attribute type="xs:int" name="num"/>
<xs:attribute type="xs:string" name="texture"/>
</xs:complexType>
</xs:element>
<xs:complexType name="ButtonType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="normalTex" use="optional"/>
<xs:attribute type="xs:string" name="pushedTex" use="optional"/>
<xs:attribute type="xs:int" name="buttonName" use="optional"/>
<xs:attribute type="xs:string" name="buttonNameText" use="optional"/>
<xs:attribute type="xs:string" name="highlightTex" use="optional"/>
<xs:attribute type="xs:string" name="dropTex" use="optional"/>
<xs:attribute type="xs:boolean" name="noHighlight" use="optional"/>
<xs:attribute type="xs:boolean" name="defaultSoundOn" use="optional"/>
<xs:attribute type="xs:int" name="DisableTime" use="optional"/>
</xs:complexType>
<xs:complexType name="TextBoxType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:Color" name="TextColor" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="text" use="optional"/>
<xs:attribute type="xs:int" name="sysstring" use="optional"/>
<xs:attribute type="xs:int" name="systemMsg" use="optional"/>
<xs:attribute type="xs:string" name="emoticon" use="required"/>
<xs:attribute type="xs:string" name="backTex" use="optional"/>
<xs:attribute type="xs:string" name="specialFont" use="optional"/>
<xs:attribute type="xs:string" name="valign" use="required"/>
<xs:attribute type="xs:string" name="align" use="required"/>
<xs:attribute type="xs:boolean" name="autosize" use="optional"/>
<xs:attribute type="xs:boolean" name="isShowScroll" use="optional"/>
<xs:attribute type="xs:string" name="specialFontType" use="required"/>
</xs:complexType>
<xs:complexType name="TextListBoxType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="maxRow"/>
<xs:attribute type="xs:int" name="showRow"/>
<xs:attribute type="xs:int" name="lineGap"/>
<xs:attribute type="xs:boolean" name="isShowScroll"/>
</xs:complexType>
<xs:simpleType name="TextureAutoRotateType">
<xs:restriction base="xs:string">
<xs:enumeration value="None"/>
<xs:enumeration value="Camera"/>
<xs:enumeration value="Pawn"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TextureLayer">
<xs:restriction base="xs:string">
<xs:enumeration value="Background"/>
<xs:enumeration value="Normal"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TextAlignType">
<xs:restriction base="xs:string">
<xs:enumeration value="Left"/>
<xs:enumeration value="Center"/>
<xs:enumeration value="Right"/>
<xs:enumeration value="MacroIcon"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TextVAlignType">
<xs:restriction base="xs:string">
<xs:enumeration value="Top"/>
<xs:enumeration value="Middle"/>
<xs:enumeration value="Bottom"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ListBoxType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="maxRow"/>
<xs:attribute type="xs:int" name="showRow" use="required"/>
<xs:attribute type="xs:boolean" name="showLastLine" use="required"/>
</xs:complexType>
<xs:complexType name="TreeCtrlType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:boolean" name="SaveExpandedNode" use="required"/>
<xs:attribute type="xs:boolean" name="MultiExpand" use="required"/>
</xs:complexType>
<xs:complexType name="ListCtrlType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:ListColumn" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="maxRow" use="required"/>
<xs:attribute type="xs:int" name="showRow" use="required"/>
<xs:attribute type="xs:boolean" name="useScroll" use="required"/>
<xs:attribute type="xs:int" name="contentsHeight" use="required"/>
<xs:attribute type="xs:int" name="headerHeight" use="required"/>
</xs:complexType>
<xs:element name="ListColumn">
<xs:complexType>
<xs:attribute type="xs:int" name="string" use="required"/>
<xs:attribute type="xs:int" name="width" use="required"/>
<xs:attribute type="xs:boolean" name="bNumber" use="required"/>
<xs:attribute type="xs:boolean" name="bAscend" use="required"/>
<xs:attribute type="xs:boolean" name="bClickEnable" use="required"/>
</xs:complexType>
</xs:element>
<xs:complexType name="MinimapCtrlType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:boolean" name="showtime" use="required"/>
<xs:attribute type="xs:boolean" name="showtown" use="required"/>
<xs:attribute type="xs:boolean" name="showgrid" use="required"/>
<xs:attribute type="xs:boolean" name="showmylocmark" use="required"/>
<xs:attribute type="xs:boolean" name="showmyloctext" use="required"/>
<xs:attribute type="xs:boolean" name="showssqtext" use="required"/>
</xs:complexType>
<xs:complexType name="MoviePlayerCtrlType"> <!-- XMLVideoPlayerCtrlData -->
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="FileName" use="required"/>
<xs:attribute type="xs:int" name="PlayTime"/>
</xs:complexType>
<xs:complexType name="MultiEditType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="maxRow"/>
<xs:attribute type="xs:int" name="showRow"/>
</xs:complexType>
<xs:complexType name="MultiSellItemInfoType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="MultiSellNeededItemType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="ProgressType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="Type" use="required"/>
<xs:attribute type="xs:string" name="backLeftTexture" use="required"/>
<xs:attribute type="xs:string" name="backRightTexture" use="required"/>
<xs:attribute type="xs:string" name="backTexture" use="required"/>
<xs:attribute type="xs:string" name="barLeftTexture" use="required"/>
<xs:attribute type="xs:string" name="barRightTexture" use="required"/>
<xs:attribute type="xs:string" name="barTexture" use="required"/>
<xs:attribute type="xs:int" name="USize" use="required"/>
<xs:attribute type="xs:int" name="VSize" use="optional"/>
<xs:attribute type="xs:int" name="gap" use="required"/>
</xs:complexType>
<xs:complexType name="PropertyControllerType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="RadarType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="RadarMapCtrlType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:RadarMapCtrlObjectType" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="MapTextureName" use="required"/>
<xs:attribute type="xs:float" name="Layer" use="required"/>
</xs:complexType>
<xs:element name="RadarMapCtrlObjectType">
<xs:complexType>
<xs:attribute type="xs:string" name="TypeName" use="required"/>
<xs:attribute type="xs:string" name="NormalTexName" use="required"/>
<xs:attribute type="xs:string" name="PushedTexName" use="required"/>
<xs:attribute type="xs:string" name="OverTexName" use="required"/>
<xs:attribute type="xs:int" name="Width" use="required"/>
<xs:attribute type="xs:int" name="Height" use="required"/>
<xs:attribute type="xs:boolean" name="Top" use="required"/>
</xs:complexType>
</xs:element>
<xs:complexType name="RadioButtonType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="sysstring"/>
<xs:attribute type="xs:boolean" name="isChecked" use="required"/>
<xs:attribute type="xs:int" name="radioGroupID" use="required"/>
</xs:complexType>
<xs:complexType name="ScrollAreaType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" minOccurs="1" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<!-- ScrollArea might contain any UI element. -->
<xs:element type="ui:WindowType" name="Window" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ButtonType" name="Button" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TextBoxType" name="TextBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:EditBoxType" name="EditBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TextureType" name="Texture" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ChatWindowType" name="ChatWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TabType" name="TabCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/> <!-- proper name? -->
<xs:element type="ui:ItemWindowType" name="ItemWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:CheckBoxType" name="CheckBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ComboBoxType" name="ComboBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ProgressType" name="Progress" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MultiEditType" name="MultiEdit" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ListCtrlType" name="ListCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ListBoxType" name="ListBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:StatusBarType" name="StatusBar" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MinimapCtrlType" name="MinimapCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ShortcutItemWindowType" name="ShortcutItemWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TreeCtrlType" name="TreeCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:SliderCtrlType" name="SliderCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:EffectButtonType" name="EffectButton" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TextListBoxType" name="TextListBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:RadarType" name="Radar" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:HtmlCtrlType" name="HtmlCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:RadioButtonType" name="RadioButton" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:InvenWeightType" name="InvenWeight" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:StatusIconCtrlType" name="StatusIconCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:BarCtrlType" name="BarCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:FishViewportWindowType" name="FishViewportWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MultiSellItemInfoType" name="MultiSellItemInfo" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MultiSellNeededItemType" name="MultiSellNeededItem" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:DrawPanelType" name="DrawPanel" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:RadarMapCtrlType" name="RadarMapCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:PropertyControllerType" name="PropertyController" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:FlashCtrlType" name="FlashCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:CharacterViewportWindowType" name="CharacterViewportWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="AreaHeight" use="required"/>
</xs:complexType>
<xs:complexType name="ShortcutType">
<xs:choice maxOccurs="unbounded">
<xs:element ref="ui:ShortcutItem" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:ShortcutSpecialItem" minOccurs="0" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="xs:string" name="state" use="required"/>
<xs:attribute type="xs:boolean" name="modifiable" use="required"/>
</xs:complexType>
<xs:element name="ShortcutItem">
<xs:complexType>
<xs:attribute type="xs:string" name="key" use="required"/>
<xs:attribute type="xs:string" name="command"/>
<xs:attribute type="xs:string" name="subkey1" use="optional"/>
<xs:attribute type="xs:string" name="subkey2" use="optional"/>
<xs:attribute type="xs:string" name="action" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="ShortcutSpecialItem">
<xs:complexType>
<xs:attribute type="xs:string" name="key" use="required"/>
<xs:attribute type="xs:string" name="command"/>
</xs:complexType>
</xs:element>
<xs:complexType name="ShortcutItemWindowType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:boolean" name="alwaysShowOutline"/>
<xs:attribute type="xs:boolean" name="useReservedShortcut"/>
</xs:complexType>
<xs:complexType name="SliderCtrlType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:int" name="iCurrTick"/>
<xs:attribute type="xs:int" name="iThumbBtnWidth"/>
<xs:attribute type="xs:int" name="iThumbBtnHeight"/>
<xs:attribute type="xs:int" name="iNumOfTick" use="required"/>
<xs:attribute type="xs:boolean" name="thumbBtnInclusive" use="optional"/>
<xs:attribute type="xs:string" name="strBackTexture" use="required"/>
<xs:attribute type="xs:string" name="strDisableBackTexture"/>
<xs:attribute type="xs:string" name="strThumbBtnNormalTexture"/>
<xs:attribute type="xs:string" name="strThumbBtnDownTexture" use="required"/>
<xs:attribute type="xs:int" name="iPushBtnWidth" use="required"/>
<xs:attribute type="xs:int" name="iPushBtnHeight" use="required"/>
<xs:attribute type="xs:int" name="iPushBtnAutoHitTime" use="required"/>
<xs:attribute type="xs:string" name="strIncreaseBtnDownTexture" use="required"/>
<xs:attribute type="xs:string" name="strIncreaseBtnNormalTexture" use="required"/>
<xs:attribute type="xs:string" name="strDecreaseBtnNormalTexture" use="required"/>
<xs:attribute type="xs:string" name="strDecreaseBtnDownTexture" use="required"/>
<xs:attribute type="xs:string" name="strTickTexture" use="required"/>
</xs:complexType>
<xs:complexType name="StatusBarType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:GaugeText" minOccurs="0" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="Title" use="optional"/>
<xs:attribute type="xs:int" name="TextureWidth" use="optional"/>
<xs:attribute type="xs:int" name="TextureHeight" use="optional"/>
<xs:attribute type="xs:string" name="ForeTexture" use="optional"/>
<xs:attribute type="xs:string" name="ForeLeftTexture" use="optional"/>
<xs:attribute type="xs:string" name="ForeRightTexture" use="optional"/>
<xs:attribute type="xs:string" name="BackTexture" use="optional"/>
<xs:attribute type="xs:string" name="BackLeftTexture" use="optional"/>
<xs:attribute type="xs:string" name="BackRightTexture" use="optional"/>
<xs:attribute type="xs:string" name="RegenLeftTexture" use="optional"/>
<xs:attribute type="xs:string" name="RegenTexture" use="optional"/>
<xs:attribute type="xs:string" name="RegenRightTexture" use="optional"/>
<xs:attribute type="xs:string" name="WarnTexture" use="optional"/>
<xs:attribute type="xs:string" name="WarnLeftTexture" use="optional"/>
<xs:attribute type="xs:string" name="WarnRightTexture" use="optional"/>
</xs:complexType>
<xs:complexType name="StatusIconCtrlType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:boolean" name="NoClip" use="required"/>
<xs:attribute type="xs:boolean" name="NoTooltip" use="required"/>
</xs:complexType>
<xs:complexType name="StyleType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:Color" name="Color" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="Name" use="required"/>
<xs:attribute type="xs:string" name="FontName" use="required"/>
<xs:attribute type="xs:string" name="Line" use="required"/>
</xs:complexType>
<xs:complexType name="TabType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:TabButton" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
<xs:element name="TabButton">
<xs:complexType>
<xs:attribute type="xs:int" name="buttonName" use="optional"/>
<xs:attribute type="xs:string" name="buttonNameText" use="optional"/>
<xs:attribute type="xs:string" name="target"/>
<xs:attribute type="xs:int" name="width"/>
<xs:attribute type="xs:int" name="height"/>
<xs:attribute type="xs:string" name="normalTex"/>
<xs:attribute type="xs:string" name="pushedTex"/>
<xs:attribute type="xs:boolean" name="movable" use="required"/>
<xs:attribute type="xs:int" name="gap" use="required"/>
<xs:attribute type="xs:int" name="tooltip" use="required"/>
<xs:attribute type="xs:boolean" name="noHighlight" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="TabOrder">
<xs:complexType>
<xs:attribute type="xs:string" name="preOrder" use="required"/>
<xs:attribute type="xs:string" name="postOrder" use="required"/>
</xs:complexType>
</xs:element>
<xs:complexType name="InvenWeightType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:GaugeText" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="Target"/>
<xs:attribute type="xs:int" name="TextureWidth"/>
<xs:attribute type="xs:int" name="TextureHeight"/>
<xs:attribute type="xs:string" name="TextureStepLeft"/>
<xs:attribute type="xs:string" name="TextureStepMid"/>
<xs:attribute type="xs:string" name="TextureStepRight"/>
<xs:attribute type="xs:string" name="TextureWarnLeft"/>
<xs:attribute type="xs:string" name="TextureWarnMid"/>
<xs:attribute type="xs:string" name="TextureWarnRight"/>
<xs:attribute type="xs:string" name="TextureAddedLeft"/>
<xs:attribute type="xs:string" name="TextureAddedMid"/>
<xs:attribute type="xs:string" name="TextureAddedRight"/>
<xs:attribute type="xs:string" name="TextureBackLeft"/>
<xs:attribute type="xs:string" name="TextureBackMid"/>
<xs:attribute type="xs:string" name="TextureBackRight"/>
</xs:complexType>
<xs:complexType name="TextureType">
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:TextureCoords" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:Color" name="ColorModify" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="file" use="required"/>
<xs:attribute type="xs:int" name="alpha" use="optional"/>
<xs:attribute type="xs:boolean" name="isAnimTex" use="optional"/>
<xs:attribute type="xs:string" name="AutoRotate" use="required"/>
<xs:attribute type="xs:string" name="AlphaMask" use="optional"/>
<xs:attribute type="xs:float" name="MaskLayer" use="optional"/>
<xs:attribute type="xs:string" name="type" use="optional"/>
<xs:attribute type="xs:string" name="layer" use="optional"/>
</xs:complexType>
<xs:complexType name="WindowType">
<xs:choice maxOccurs="unbounded">
<xs:element ref="ui:Drawer" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:ShowHideAnim" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:frame" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:Iconable" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:ResizeFrame" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:AdditionalState" minOccurs="0" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:WindowType" name="Window" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ButtonType" name="Button" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TextBoxType" name="TextBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:EditBoxType" name="EditBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TextureType" name="Texture" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ChatWindowType" name="ChatWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TabType" name="Tab" xmlns:ui="http://www.lineage2.co.kr/ui"/> <!-- proper name? -->
<xs:element type="ui:ItemWindowType" name="ItemWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:CheckBoxType" name="CheckBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ComboBoxType" name="ComboBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ProgressType" name="Progress" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MultiEditType" name="MultiEdit" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ListCtrlType" name="ListCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ListBoxType" name="ListBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:StatusBarType" name="StatusBar" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MinimapCtrlType" name="MinimapCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ShortcutItemWindowType" name="ShortcutItemWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TreeCtrlType" name="TreeCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:SliderCtrlType" name="SliderCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:EffectButtonType" name="EffectButton" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TextListBoxType" name="TextListBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:RadarType" name="Radar" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:HtmlCtrlType" name="HtmlCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:RadioButtonType" name="RadioButton" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:InvenWeightType" name="InvenWeight" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:StatusIconCtrlType" name="StatusIconCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:BarCtrlType" name="BarCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ScrollAreaType" name="ScrollArea" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:FishViewportWindowType" name="FishViewportWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MultiSellItemInfoType" name="MultiSellItemInfo" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MultiSellNeededItemType" name="MultiSellNeededItem" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:DrawPanelType" name="DrawPanel" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:RadarMapCtrlType" name="RadarMapCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:PropertyControllerType" name="PropertyController" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:FlashCtrlType" name="FlashCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:CharacterViewportWindowType" name="CharacterViewportWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:NameCtrlType" name="NameCtrl" minOccurs="0" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MoviePlayerCtrlType" name="MoviePlayerCtrl" minOccurs="0" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<!-- Does this belong here? -->
<!-- Are these actually %sType? -->
<xs:element type="ui:ShortcutType" name="Shortcut" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:FontType" name="Font" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:StyleType" name="Style" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="parent" use="optional"/>
<xs:attribute type="xs:string" name="backTex" use="optional"/>
<xs:attribute type="xs:string" name="script" use="optional"/>
<xs:attribute type="xs:string" name="state" use="optional"/>
<xs:attribute type="xs:boolean" name="frame" use="optional"/>
<xs:attribute type="xs:boolean" name="resizeframe" use="optional"/>
<xs:attribute type="xs:boolean" name="iconable" use="optional"/>
<xs:attribute type="xs:boolean" name="hidden" use="optional"/>
<xs:attribute type="xs:boolean" name="alwaysFullAlpha" use="optional"/>
<xs:attribute type="xs:boolean" name="stuckable" use="optional"/>
<xs:attribute type="xs:int" name="title" use="optional"/>
<xs:attribute type="xs:boolean" name="savePosition" use="optional"/>
<xs:attribute type="xs:boolean" name="saveSize" use="optional"/>
<xs:attribute type="xs:boolean" name="draggable" use="optional"/>
<xs:attribute type="xs:boolean" name="hookKeyInput" use="optional"/>
<xs:attribute type="xs:string" name="WorkingConfiguration" use="required"/>
<xs:attribute type="xs:boolean" name="UseParentClipRect" use="optional"/>
</xs:complexType>
<xs:element name="Drawer">
<xs:complexType>
<xs:attribute type="xs:string" name="direction"/>
<xs:attribute type="xs:string" name="ownerWindow"/>
<xs:attribute type="xs:int" name="offsetX" use="required"/>
<xs:attribute type="xs:int" name="offsetY" use="required"/>
<xs:attribute type="xs:boolean" name="directionFixed" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="ShowHideAnim">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element type="ui:Anim" name="ShowAnim" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:Anim" name="HideAnim" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="Anim">
<xs:attribute type="xs:string" name="type"/>
<xs:attribute type="xs:float" name="direction" use="optional"/>
<xs:attribute type="xs:float" name="seconds" use="optional"/>
</xs:complexType>
<xs:element name="Iconable">
<xs:complexType>
<xs:attribute name="IconName" use="required" xmlns:ui="http://www.lineage2.co.kr/ui" type="xs:string"/>
<xs:attribute name="TooltipIdx" use="required" xmlns:ui="http://www.lineage2.co.kr/ui" type="xs:int"/>
</xs:complexType>
</xs:element>
<xs:element name="ResizeFrame">
<xs:complexType>
<xs:attribute type="xs:int" name="x" use="optional"/>
<xs:attribute type="xs:int" name="y" use="optional"/>
<xs:attribute type="xs:int" name="width" use="optional"/>
<xs:attribute type="xs:int" name="height" use="optional"/>
<xs:attribute type="xs:int" name="maxIncrease" use="optional"/>
<xs:attribute type="xs:string" name="direction"/>
</xs:complexType>
</xs:element>
<xs:element name="AdditionalState">
<xs:complexType>
<xs:attribute type="xs:string" name="stateName" use="required"/>
</xs:complexType>
</xs:element>
<xs:complexType name="NameCtrlType">
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="FontDataType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element type="ui:DefaultPropertyType" name="DefaultProperty" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:Shadow" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:Stroke" minOccurs="0" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="xs:string" name="fileName" use="required"/>
<xs:attribute type="xs:string" name="location" use="required"/>
<xs:attribute type="xs:int" name="size" use="required"/>
<!-- <xs:attribute type="xs:int" name="index" use="required"/> -->
<xs:attribute type="xs:int" name="index" use="optional"/>
<xs:attribute type="xs:int" name="lineGap" use="optional"/>
<xs:attribute type="xs:int" name="underlineOffset" use="required"/>
</xs:complexType>
<xs:element name="FontDefinition">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element type="ui:Color" name="DefaultColor" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:FontDataType" name="FontData" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="defaultFontName" use="required"/>
</xs:complexType>
</xs:element>
<xs:complexType name="DefaultPositionItemPosition">
<xs:attribute type="xs:string" name="relativePoint" use="required"/>
<xs:attribute type="xs:int" name="offsetX" use="required"/>
<xs:attribute type="xs:int" name="offsetY" use="required"/>
<xs:attribute type="xs:boolean" name="anchored" use="required"/>
</xs:complexType>
<xs:complexType name="DefaultPositionItemSize">
<xs:attribute type="xs:int" name="width" use="required"/>
<xs:attribute type="xs:int" name="height" use="optional"/>
</xs:complexType>
<xs:element name="DefaultPositionItem">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element type="ui:DefaultPositionItemPosition" name="Position" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:DefaultPositionItemSize" name="Size" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
<xs:attribute type="xs:string" name="windowName" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="DefaultPosition">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ui:DefaultPositionItem" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="Constant">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="ConstantInt" type="ui:ConstantIntType" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element name="ConstantFloat" type="ui:ConstantFloatType" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element name="ConstantBool" type="ui:ConstantBoolType" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element name="ConstantString" type="ui:ConstantStringType" xmlns:ui="http://www.lineage2.co.kr/ui"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="ConstantIntType">
<xs:attribute type="xs:int" name="id" use="required"/>
<xs:attribute type="xs:int" name="value" use="required"/>
</xs:complexType>
<xs:complexType name="ConstantFloatType">
<xs:attribute type="xs:int" name="id" use="required"/>
<xs:attribute type="xs:float" name="value" use="required"/>
</xs:complexType>
<xs:complexType name="ConstantStringType">
<xs:attribute type="xs:int" name="id" use="required"/>
<xs:attribute type="xs:string" name="value" use="required"/>
</xs:complexType>
<xs:complexType name="ConstantBoolType">
<xs:attribute type="xs:int" name="id" use="required"/>
<xs:attribute type="xs:boolean" name="value" use="required"/>
</xs:complexType>
<xs:element name="L2UI">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element type="ui:WindowType" name="Window" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ButtonType" name="Button" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TextBoxType" name="TextBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:EditBoxType" name="EditBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TextureType" name="Texture" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ChatWindowType" name="ChatWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TabType" name="TabCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/> <!-- proper name? -->
<xs:element type="ui:ItemWindowType" name="ItemWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:CheckBoxType" name="CheckBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ComboBoxType" name="ComboBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ProgressType" name="Progress" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MultiEditType" name="MultiEdit" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ListCtrlType" name="ListCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ListBoxType" name="ListBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:StatusBarType" name="StatusBar" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MinimapCtrlType" name="MinimapCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ShortcutItemWindowType" name="ShortcutItemWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TreeCtrlType" name="TreeCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:SliderCtrlType" name="SliderCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:EffectButtonType" name="EffectButton" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:TextListBoxType" name="TextListBox" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:RadarType" name="Radar" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:HtmlCtrlType" name="HtmlCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:RadioButtonType" name="RadioButton" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:InvenWeightType" name="InvenWeight" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:StatusIconCtrlType" name="StatusIconCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:BarCtrlType" name="BarCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ScrollAreaType" name="ScrollArea" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:FishViewportWindowType" name="FishViewportWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MultiSellItemInfoType" name="MultiSellItemInfo" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MultiSellNeededItemType" name="MultiSellNeededItem" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:DrawPanelType" name="DrawPanel" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:RadarMapCtrlType" name="RadarMapCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:PropertyControllerType" name="PropertyController" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:FlashCtrlType" name="FlashCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:CharacterViewportWindowType" name="CharacterViewportWindow" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:NameCtrlType" name="NameCtrl" minOccurs="0" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:MoviePlayerCtrlType" name="MoviePlayerCtrl" minOccurs="0" maxOccurs="unbounded" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<!-- Does this belong here? -->
<!-- Are these actually %sType? -->
<xs:element type="ui:ShortcutType" name="Shortcut" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:FontType" name="Font" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:StyleType" name="Style" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:FontDefinition" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:ChatChannelDefinition" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:DefaultPosition" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element ref="ui:Constant" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<!-- SceneCtrl, unused? -->
<!-- <xs:element type="ui:SceneCameraCtrlType" name="SceneCameraCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:SceneNpcCtrlType" name="SceneNpcCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:ScenePcCtrlType" name="ScenePcCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:SceneScreenCtrlType" name="SceneScreenCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/>
<xs:element type="ui:SceneMusicCtrlType" name="SceneMusicCtrl" xmlns:ui="http://www.lineage2.co.kr/ui"/> -->
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment