<div>Hi dear developers of WireGuard!<div><div style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><p style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; margin-bottom: 16px; margin-top: 0px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><br></p><p style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; margin-bottom: 16px; margin-top: 0px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Recently, I've been reading the source code of WireGuard. The function name like ipc_get_device() looks to be a little bit misleading. To make the code more readable for new developers, here are some suggestions:</p><span style="background-color: rgb(255, 255, 255); color: rgb(36, 41, 46); display: inline; float: none; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">
</span><ul style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 16px; margin-top: 0px; orphans: 2; padding-left: 2em; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">
<li style="box-sizing: border-box; line-height: 1.5; margin-left: 0px;">Rename <b>ipc_get_device(&dev)</b> to <b>ipc_fetch_conf(&conf)</b> because it only fetches the runtime configuations from kernel.</li>
<li style="box-sizing: border-box; line-height: 1.5; margin-left: 0px; margin-top: 0.25em;">Change funtion prototype ipc_set_device(struct wgdevice *dev) to ipc_set_device(<b>const</b> struct wgdevice *newconf).</li>
</ul><span style="background-color: rgb(255, 255, 255); color: rgb(36, 41, 46); display: inline; float: none; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">
</span><p style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; margin-bottom: 16px; margin-top: 0px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Change the following IPC function names and parameters which used to be confusing:</p><span style="background-color: rgb(255, 255, 255); color: rgb(36, 41, 46); display: inline; float: none; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">
</span><pre style="background-color: rgb(246, 248, 250); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; box-sizing: border-box; color: rgb(36, 41, 46); font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; font-size: 85%; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-top: 0px; orphans: 2; overflow: auto; overflow-wrap: normal; padding-bottom: 16px; padding-left: 16px; padding-right: 16px; padding-top: 16px; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: pre; word-spacing: 0px;"><code style="background-attachment: scroll; background-clip: border-box; background-color: transparent; background-image: none; background-origin: padding-box; background-position-x: 0%; background-position-y: 0%; background-repeat: repeat; background-size: auto; border-bottom-color: currentColor; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; border-left-color: currentColor; border-left-style: none; border-left-width: 0px; border-right-color: currentColor; border-right-style: none; border-right-width: 0px; border-top-color: currentColor; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-style: none; border-top-width: 0px; box-sizing: border-box; display: inline; font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; font-size: 100%; line-height: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow: visible; overflow-wrap: normal; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; white-space: pre; word-break: normal;">- ipc_set_device(dev)                  => ipc_set_device(newconf)
- ipc_get_device(dev, interface)       => ipc_fetch_conf(conf, interface)
- kernel_set_device(dev)               => kernel_set_device(newconf)
- kernel_get_device(device, interface) => kernel_fetch_conf(conf, interface)
- userspace_set_device(dev)            => userspace_set_device(newconf)
- userspace_get_device(out, interface) => userspace_fetch_conf(out, interface)

- free_wgdevice(dev) => free_conf(conf)
</code></pre><span style="background-color: rgb(255, 255, 255); color: rgb(36, 41, 46); display: inline; float: none; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">
</span><p style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; margin-bottom: 16px; margin-top: 0px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Renamed local variable/parameter symbols:</p><span style="background-color: rgb(255, 255, 255); color: rgb(36, 41, 46); display: inline; float: none; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">
</span><ul style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 16px; margin-top: 0px; orphans: 2; padding-left: 2em; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">
<li style="box-sizing: border-box; line-height: 1.5; margin-left: 0px;">In showconf_main(), show_main():<br style="box-sizing: border-box;">
device => conf</li>
<li style="box-sizing: border-box; line-height: 1.5; margin-left: 0px; margin-top: 0.25em;">In ipc_fetch_conf(), kernel_fetch_conf(), userspace_fetch_conf():<br style="box-sizing: border-box;">
dev => conf</li>
<li style="box-sizing: border-box; line-height: 1.5; margin-left: 0px; margin-top: 0.25em;">In ipc_set_device(), kernel_set_device(), userspace_set_device():<br style="box-sizing: border-box;">
dev => newconf</li>
</ul><span style="background-color: rgb(255, 255, 255); color: rgb(36, 41, 46); display: inline; float: none; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">
</span><p style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; margin-bottom: 16px; margin-top: 0px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Note:<br style="box-sizing: border-box;">
A lot of braces are added to the if-else code blocks to keep ourselves from making unexpected mistakes in the future.</p><span style="background-color: rgb(255, 255, 255); color: rgb(36, 41, 46); display: inline; float: none; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">
</span><p style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; margin-bottom: 16px; margin-top: 0px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Changed function prototypes:</p><span style="background-color: rgb(255, 255, 255); color: rgb(36, 41, 46); display: inline; float: none; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">
</span><ul style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-top: 0px; orphans: 2; padding-left: 2em; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">
<li style="box-sizing: border-box; line-height: 1.5; margin-left: 0px;"><code style="background-color: rgba(27, 31, 35, 0.05); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; font-size: 85%; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.2em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.2em;">int ipc_set_device(struct wgdevice *)</code> => <code style="background-color: rgba(27, 31, 35, 0.05); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; font-size: 85%; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.2em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.2em;">int ipc_set_device(const struct wgdevice *newconf)</code></li>
<li style="box-sizing: border-box; line-height: 1.5; margin-left: 0px; margin-top: 0.25em;"><code style="background-color: rgba(27, 31, 35, 0.05); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; font-size: 85%; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.2em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.2em;">int kernel_set_device(struct wgdevice *)</code> => <code style="background-color: rgba(27, 31, 35, 0.05); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; font-size: 85%; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.2em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.2em;">int kernel_set_device(const struct wgdevice *newconf)</code></li>
<li style="box-sizing: border-box; line-height: 1.5; margin-left: 0px; margin-top: 0.25em;"><code style="background-color: rgba(27, 31, 35, 0.05); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; font-size: 85%; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.2em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.2em;">int userspace_set_device(struct wgdevice *)</code> => <code style="background-color: rgba(27, 31, 35, 0.05); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; font-size: 85%; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.2em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.2em;">int userspace_set_device(const struct wgdevice *newconf)</code></li></ul><span style="background-color: rgb(255, 255, 255); color: rgb(36, 41, 46); display: inline; float: none; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><br></span></div><div style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><span style="background-color: rgb(255, 255, 255); color: rgb(36, 41, 46); display: inline; float: none; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Added function:</span></div><div style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><span style="background-color: rgb(255, 255, 255); color: rgb(36, 41, 46); display: inline; float: none; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"></span><ul style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-top: 0px; orphans: 2; padding-left: 2em; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><li style="box-sizing: border-box; line-height: 1.5; margin-left: 0px;"><code style="background-color: rgba(27, 31, 35, 0.05); border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; font-size: 85%; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.2em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.2em;">free_conf()</code><br></li></ul></div><div style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><br></div><div style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Patch code is both in the email attachment and on github.com ( <a href="https://github.com/WireGuard/WireGuard/pull/5/files">https://github.com/WireGuard/WireGuard/pull/5/files</a> )</div><div style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><br></div><div style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Please tell me anything you thought, I would be glad to help.</div><div style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><br></div><div style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Happy hacking!</div><div style="color: rgb(0, 0, 0); font-family: Verdana; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 1.5; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><br></div></div><div><div style="color:#909090;font-family:Arial Narrow;font-size:12px">------------------</div><div style="font-size:14px;font-family:Verdana;color:#000;"><div>-- Liu Qun from Tsingtao, China</div></div></div></div><div><br></div><div><div><p style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 16px; margin-top: 0px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><br></p></div></div>