consul/website/source/layouts/docs.erb

332 lines
11 KiB
Plaintext
Raw Normal View History

2014-02-08 00:41:03 +00:00
<% wrap_layout :inner do %>
<% content_for :sidebar do %>
<div class="docs-sidebar hidden-print affix-top" role="complementary">
<ul class="nav docs-sidenav">
<li<%= sidebar_current("docs-home") %>>
<a href="/docs/index.html">Documentation Home</a>
</li>
<li<%= sidebar_current("docs-upgrading") %>>
<a href="/docs/upgrading.html">Upgrading and Compatibility</a>
<ul class="nav">
<li<%= sidebar_current("docs-upgrading-upgrading") %>>
<a href="/docs/upgrading.html">Upgrading Consul</a>
2014-02-08 00:41:03 +00:00
</li>
<li<%= sidebar_current("docs-upgrading-compat") %>>
<a href="/docs/compatibility.html">Compatibility Promise</a>
2015-10-22 00:29:43 +00:00
</li>
2015-02-19 19:03:02 +00:00
<li<%= sidebar_current("docs-upgrading-specific") %>>
<a href="/docs/upgrade-specific.html">Specific Version Details</a>
2014-02-08 00:41:03 +00:00
</li>
</ul>
</li>
<li<%= sidebar_current("docs-internals") %>>
<a href="/docs/internals/index.html">Consul Internals</a>
2015-01-18 00:50:23 +00:00
<ul class="nav">
<li<%= sidebar_current("docs-internals-architecture") %>>
<a href="/docs/internals/architecture.html">Architecture</a>
2015-01-18 00:50:23 +00:00
</li>
<li<%= sidebar_current("docs-internals-consensus") %>>
<a href="/docs/internals/consensus.html">Consensus Protocol</a>
2015-01-18 00:50:23 +00:00
</li>
2014-02-08 00:41:03 +00:00
<li<%= sidebar_current("docs-internals-gossip") %>>
<a href="/docs/internals/gossip.html">Gossip Protocol</a>
2015-01-18 00:50:23 +00:00
</li>
2014-02-08 00:41:03 +00:00
2015-10-22 00:29:43 +00:00
<li<%= sidebar_current("docs-internals-coordinates") %>>
<a href="/docs/internals/coordinates.html">Network Coordinates</a>
</li>
2014-05-20 00:05:35 +00:00
<li<%= sidebar_current("docs-internals-sessions") %>>
<a href="/docs/internals/sessions.html">Sessions</a>
2015-01-18 00:50:23 +00:00
</li>
2014-05-20 00:05:35 +00:00
2014-08-18 22:05:11 +00:00
<li<%= sidebar_current("docs-internals-acl") %>>
<a href="/docs/internals/acl.html">ACLs</a>
2015-01-18 00:50:23 +00:00
</li>
2014-08-18 22:05:11 +00:00
<li<%= sidebar_current("docs-internals-anti-entropy") %>>
<a href="/docs/internals/anti-entropy.html">Anti-Entropy</a>
</li>
2014-02-08 00:41:03 +00:00
<li<%= sidebar_current("docs-internals-security") %>>
<a href="/docs/internals/security.html">Security Model</a>
2015-01-18 00:50:23 +00:00
</li>
2014-04-17 00:00:37 +00:00
<li<%= sidebar_current("docs-internals-jepsen") %>>
<a href="/docs/internals/jepsen.html">Jepsen Testing</a>
2014-02-08 00:41:03 +00:00
</li>
</ul>
</li>
<li<%= sidebar_current("docs-commands") %>>
<a href="/docs/commands/index.html">Consul Commands (CLI)</a>
2014-02-08 00:41:03 +00:00
<ul class="nav">
<li<%= sidebar_current("docs-commands-agent") %>>
<a href="/docs/commands/agent.html">agent</a>
2015-01-18 00:50:23 +00:00
</li>
2014-08-29 00:22:56 +00:00
<li<%= sidebar_current("docs-commands-configtest") %>>
<a href="/docs/commands/configtest.html">configtest</a>
</li>
2014-08-29 00:22:56 +00:00
<li<%= sidebar_current("docs-commands-event") %>>
<a href="/docs/commands/event.html">event</a>
2015-01-18 00:50:23 +00:00
</li>
2014-09-01 22:03:37 +00:00
<li<%= sidebar_current("docs-commands-exec") %>>
<a href="/docs/commands/exec.html">exec</a>
2014-02-08 00:41:03 +00:00
</li>
<li<%= sidebar_current("docs-commands-forceleave") %>>
<a href="/docs/commands/force-leave.html">force-leave</a>
</li>
<li<%= sidebar_current("docs-commands-join") %>>
<a href="/docs/commands/join.html">join</a>
</li>
<li<%= sidebar_current("docs-commands-keygen") %>>
<a href="/docs/commands/keygen.html">keygen</a>
2015-01-18 00:50:23 +00:00
</li>
2014-02-08 00:41:03 +00:00
<li<%= sidebar_current("docs-commands-keyring") %>>
<a href="/docs/commands/keyring.html">keyring</a>
2015-01-18 00:50:23 +00:00
</li>
2014-09-11 18:19:48 +00:00
2016-09-26 15:12:14 +00:00
<li<%= sidebar_current("docs-commands-kv") %>>
<a href="/docs/commands/kv.html">kv</a>
<ul class="subnav">
2016-09-26 15:12:40 +00:00
<li<%= sidebar_current("docs-commands-kv-delete") %>>
<a href="/docs/commands/kv/delete.html">delete</a>
</li>
<li<%= sidebar_current("docs-commands-kv-export") %>>
<a href="/docs/commands/kv/export.html">export</a>
</li>
2016-09-26 15:12:14 +00:00
<li<%= sidebar_current("docs-commands-kv-get") %>>
<a href="/docs/commands/kv/get.html">get</a>
</li>
<li<%= sidebar_current("docs-commands-kv-import") %>>
<a href="/docs/commands/kv/import.html">import</a>
</li>
2016-09-26 15:12:29 +00:00
<li<%= sidebar_current("docs-commands-kv-put") %>>
<a href="/docs/commands/kv/put.html">put</a>
</li>
2016-09-26 15:12:14 +00:00
</ul>
</li>
2014-02-08 00:41:03 +00:00
<li<%= sidebar_current("docs-commands-leave") %>>
2015-10-22 00:29:43 +00:00
<a href="/docs/commands/leave.html">leave</a></li>
2015-01-20 02:43:38 +00:00
<li<%= sidebar_current("docs-commands-lock") %>>
<a href="/docs/commands/lock.html">lock</a>
2014-02-08 00:41:03 +00:00
</li>
2015-01-21 22:07:54 +00:00
<li<%= sidebar_current("docs-commands-maint") %>>
<a href="/docs/commands/maint.html">maint</a>
</li>
2014-02-08 00:41:03 +00:00
<li<%= sidebar_current("docs-commands-members") %>>
<a href="/docs/commands/members.html">members</a>
</li>
<li<%= sidebar_current("docs-commands-monitor") %>>
<a href="/docs/commands/monitor.html">monitor</a>
2015-01-18 00:50:23 +00:00
</li>
2014-02-08 00:41:03 +00:00
<li<%= sidebar_current("docs-commands-operator") %>>
<a href="/docs/commands/operator.html">operator</a>
</li>
2014-02-24 01:09:59 +00:00
<li<%= sidebar_current("docs-commands-info") %>>
<a href="/docs/commands/info.html">info</a>
2015-01-18 00:50:23 +00:00
</li>
<li<%= sidebar_current("docs-commands-reload") %>>
<a href="/docs/commands/reload.html">reload</a>
2015-01-18 00:50:23 +00:00
</li>
2014-08-22 00:25:42 +00:00
2015-10-22 00:29:43 +00:00
<li<%= sidebar_current("docs-commands-rtt") %>>
<a href="/docs/commands/rtt.html">rtt</a>
</li>
Adds support for snapshots and restores. (#2396) * Updates Raft library to get new snapshot/restore API. * Basic backup and restore working, but need some cleanup. * Breaks out a snapshot module and adds a SHA256 integrity check. * Adds snapshot ACL and fills in some missing comments. * Require a consistent read for snapshots. * Make sure snapshot works if ACLs aren't enabled. * Adds a bit of package documentation. * Returns an empty response from restore to avoid EOF errors. * Adds API client support for snapshots. * Makes internal file names match on-disk file snapshots. * Adds DC and token coverage for snapshot API test. * Adds missing documentation. * Adds a unit test for the snapshot client endpoint. * Moves the connection pool out of the client for easier testing. * Fixes an incidental issue in the prepared query unit test. I realized I had two servers in bootstrap mode so this wasn't a good setup. * Adds a half close to the TCP stream and fixes panic on error. * Adds client and endpoint tests for snapshots. * Moves the pool back into the snapshot RPC client. * Adds a TLS test and fixes half-closes for TLS connections. * Tweaks some comments. * Adds a low-level snapshot test. This is independent of Consul so we can pull this out into a library later if we want to. * Cleans up snapshot and archive and completes archive tests. * Sends a clear error for snapshot operations in dev mode. Snapshots require the Raft snapshots to be readable, which isn't supported in dev mode. Send a clear error instead of a deep-down Raft one. * Adds docs for the snapshot endpoint. * Adds a stale mode and index feedback for snapshot saves. This gives folks a way to extract data even if the cluster has no leader. * Changes the internal format of a snapshot from zip to tgz. * Pulls in Raft fix to cancel inflight before a restore. * Pulls in new Raft restore interface. * Adds metadata to snapshot saves and a verify function. * Adds basic save and restore snapshot CLI commands. * Gets rid of tarball extensions and adds restore message. * Fixes an incidental bad link in the KV docs. * Adds documentation for the snapshot CLI commands. * Scuttle any request body when a snapshot is saved. * Fixes archive unit test error message check. * Allows for nil output writers in snapshot RPC handlers. * Renames hash list Decode to DecodeAndVerify. * Closes the client connection for snapshot ops. * Lowers timeout for restore ops. * Updates Raft vendor to get new Restore signature and integrates with Consul. * Bounces the leader's internal state when we do a restore.
2016-10-26 02:20:24 +00:00
<li<%= sidebar_current("docs-commands-snapshot") %>>
<a href="/docs/commands/snapshot.html">snapshot</a>
<ul class="subnav">
<li<%= sidebar_current("docs-commands-snapshot-agent") %>>
<a href="/docs/commands/snapshot/agent.html">agent</a>
</li>
<li<%= sidebar_current("docs-commands-snapshot-inspect") %>>
<a href="/docs/commands/snapshot/inspect.html">inspect</a>
</li>
Adds support for snapshots and restores. (#2396) * Updates Raft library to get new snapshot/restore API. * Basic backup and restore working, but need some cleanup. * Breaks out a snapshot module and adds a SHA256 integrity check. * Adds snapshot ACL and fills in some missing comments. * Require a consistent read for snapshots. * Make sure snapshot works if ACLs aren't enabled. * Adds a bit of package documentation. * Returns an empty response from restore to avoid EOF errors. * Adds API client support for snapshots. * Makes internal file names match on-disk file snapshots. * Adds DC and token coverage for snapshot API test. * Adds missing documentation. * Adds a unit test for the snapshot client endpoint. * Moves the connection pool out of the client for easier testing. * Fixes an incidental issue in the prepared query unit test. I realized I had two servers in bootstrap mode so this wasn't a good setup. * Adds a half close to the TCP stream and fixes panic on error. * Adds client and endpoint tests for snapshots. * Moves the pool back into the snapshot RPC client. * Adds a TLS test and fixes half-closes for TLS connections. * Tweaks some comments. * Adds a low-level snapshot test. This is independent of Consul so we can pull this out into a library later if we want to. * Cleans up snapshot and archive and completes archive tests. * Sends a clear error for snapshot operations in dev mode. Snapshots require the Raft snapshots to be readable, which isn't supported in dev mode. Send a clear error instead of a deep-down Raft one. * Adds docs for the snapshot endpoint. * Adds a stale mode and index feedback for snapshot saves. This gives folks a way to extract data even if the cluster has no leader. * Changes the internal format of a snapshot from zip to tgz. * Pulls in Raft fix to cancel inflight before a restore. * Pulls in new Raft restore interface. * Adds metadata to snapshot saves and a verify function. * Adds basic save and restore snapshot CLI commands. * Gets rid of tarball extensions and adds restore message. * Fixes an incidental bad link in the KV docs. * Adds documentation for the snapshot CLI commands. * Scuttle any request body when a snapshot is saved. * Fixes archive unit test error message check. * Allows for nil output writers in snapshot RPC handlers. * Renames hash list Decode to DecodeAndVerify. * Closes the client connection for snapshot ops. * Lowers timeout for restore ops. * Updates Raft vendor to get new Restore signature and integrates with Consul. * Bounces the leader's internal state when we do a restore.
2016-10-26 02:20:24 +00:00
<li<%= sidebar_current("docs-commands-snapshot-restore") %>>
<a href="/docs/commands/snapshot/restore.html">restore</a>
</li>
<li<%= sidebar_current("docs-commands-snapshot-save") %>>
<a href="/docs/commands/snapshot/save.html">save</a>
</li>
</ul>
</li>
2014-08-22 00:25:42 +00:00
<li<%= sidebar_current("docs-commands-watch") %>>
<a href="/docs/commands/watch.html">watch</a>
2014-02-24 01:09:59 +00:00
</li>
2014-02-08 00:41:03 +00:00
</ul>
</li>
<li<%= sidebar_current("docs-agent") %>>
<a href="/docs/agent/basics.html">Consul Agent</a>
2014-02-08 00:41:03 +00:00
<ul class="nav">
<li<%= sidebar_current("docs-agent-running") %>>
<a href="/docs/agent/basics.html">Running and Stopping</a>
2015-01-18 00:50:23 +00:00
</li>
2014-02-19 19:05:42 +00:00
<li<%= sidebar_current("docs-agent-dns") %>>
<a href="/docs/agent/dns.html">DNS Interface</a>
2015-01-18 00:50:23 +00:00
</li>
<li<%= sidebar_current("docs-agent-http") %>>
<a href="/docs/agent/http.html">HTTP API</a>
2015-01-18 00:50:23 +00:00
<ul class="subnav">
2015-10-22 00:29:43 +00:00
<li<%= sidebar_current("docs-agent-http-acl") %>>
<a href="/docs/agent/http/acl.html">ACLs</a>
2015-01-18 00:50:23 +00:00
</li>
<li<%= sidebar_current("docs-agent-http-agent") %>>
<a href="/docs/agent/http/agent.html">Agent</a>
</li>
<li<%= sidebar_current("docs-agent-http-catalog") %>>
<a href="/docs/agent/http/catalog.html">Catalog</a>
</li>
2015-10-22 00:29:43 +00:00
<li<%= sidebar_current("docs-agent-http-event") %>>
<a href="/docs/agent/http/event.html">Events</a>
2015-01-18 00:50:23 +00:00
</li>
<li<%= sidebar_current("docs-agent-http-health") %>>
<a href="/docs/agent/http/health.html">Health Checks</a>
</li>
2015-10-22 00:29:43 +00:00
<li<%= sidebar_current("docs-agent-http-kv") %>>
<a href="/docs/agent/http/kv.html">Key/Value Store</a>
2015-01-18 00:50:23 +00:00
</li>
2015-10-22 00:29:43 +00:00
<li<%= sidebar_current("docs-agent-http-coordinate") %>>
<a href="/docs/agent/http/coordinate.html">Network Coordinates</a>
</li>
<li<%= sidebar_current("docs-agent-http-operator") %>>
Adds support for snapshots and restores. (#2396) * Updates Raft library to get new snapshot/restore API. * Basic backup and restore working, but need some cleanup. * Breaks out a snapshot module and adds a SHA256 integrity check. * Adds snapshot ACL and fills in some missing comments. * Require a consistent read for snapshots. * Make sure snapshot works if ACLs aren't enabled. * Adds a bit of package documentation. * Returns an empty response from restore to avoid EOF errors. * Adds API client support for snapshots. * Makes internal file names match on-disk file snapshots. * Adds DC and token coverage for snapshot API test. * Adds missing documentation. * Adds a unit test for the snapshot client endpoint. * Moves the connection pool out of the client for easier testing. * Fixes an incidental issue in the prepared query unit test. I realized I had two servers in bootstrap mode so this wasn't a good setup. * Adds a half close to the TCP stream and fixes panic on error. * Adds client and endpoint tests for snapshots. * Moves the pool back into the snapshot RPC client. * Adds a TLS test and fixes half-closes for TLS connections. * Tweaks some comments. * Adds a low-level snapshot test. This is independent of Consul so we can pull this out into a library later if we want to. * Cleans up snapshot and archive and completes archive tests. * Sends a clear error for snapshot operations in dev mode. Snapshots require the Raft snapshots to be readable, which isn't supported in dev mode. Send a clear error instead of a deep-down Raft one. * Adds docs for the snapshot endpoint. * Adds a stale mode and index feedback for snapshot saves. This gives folks a way to extract data even if the cluster has no leader. * Changes the internal format of a snapshot from zip to tgz. * Pulls in Raft fix to cancel inflight before a restore. * Pulls in new Raft restore interface. * Adds metadata to snapshot saves and a verify function. * Adds basic save and restore snapshot CLI commands. * Gets rid of tarball extensions and adds restore message. * Fixes an incidental bad link in the KV docs. * Adds documentation for the snapshot CLI commands. * Scuttle any request body when a snapshot is saved. * Fixes archive unit test error message check. * Allows for nil output writers in snapshot RPC handlers. * Renames hash list Decode to DecodeAndVerify. * Closes the client connection for snapshot ops. * Lowers timeout for restore ops. * Updates Raft vendor to get new Restore signature and integrates with Consul. * Bounces the leader's internal state when we do a restore.
2016-10-26 02:20:24 +00:00
<a href="/docs/agent/http/operator.html">Operator</a>
</li>
<li<%= sidebar_current("docs-agent-http-query") %>>
<a href="/docs/agent/http/query.html">Prepared Queries</a>
</li>
2015-10-22 00:29:43 +00:00
<li<%= sidebar_current("docs-agent-http-session") %>>
<a href="/docs/agent/http/session.html">Sessions</a>
2015-01-18 00:50:23 +00:00
</li>
Adds support for snapshots and restores. (#2396) * Updates Raft library to get new snapshot/restore API. * Basic backup and restore working, but need some cleanup. * Breaks out a snapshot module and adds a SHA256 integrity check. * Adds snapshot ACL and fills in some missing comments. * Require a consistent read for snapshots. * Make sure snapshot works if ACLs aren't enabled. * Adds a bit of package documentation. * Returns an empty response from restore to avoid EOF errors. * Adds API client support for snapshots. * Makes internal file names match on-disk file snapshots. * Adds DC and token coverage for snapshot API test. * Adds missing documentation. * Adds a unit test for the snapshot client endpoint. * Moves the connection pool out of the client for easier testing. * Fixes an incidental issue in the prepared query unit test. I realized I had two servers in bootstrap mode so this wasn't a good setup. * Adds a half close to the TCP stream and fixes panic on error. * Adds client and endpoint tests for snapshots. * Moves the pool back into the snapshot RPC client. * Adds a TLS test and fixes half-closes for TLS connections. * Tweaks some comments. * Adds a low-level snapshot test. This is independent of Consul so we can pull this out into a library later if we want to. * Cleans up snapshot and archive and completes archive tests. * Sends a clear error for snapshot operations in dev mode. Snapshots require the Raft snapshots to be readable, which isn't supported in dev mode. Send a clear error instead of a deep-down Raft one. * Adds docs for the snapshot endpoint. * Adds a stale mode and index feedback for snapshot saves. This gives folks a way to extract data even if the cluster has no leader. * Changes the internal format of a snapshot from zip to tgz. * Pulls in Raft fix to cancel inflight before a restore. * Pulls in new Raft restore interface. * Adds metadata to snapshot saves and a verify function. * Adds basic save and restore snapshot CLI commands. * Gets rid of tarball extensions and adds restore message. * Fixes an incidental bad link in the KV docs. * Adds documentation for the snapshot CLI commands. * Scuttle any request body when a snapshot is saved. * Fixes archive unit test error message check. * Allows for nil output writers in snapshot RPC handlers. * Renames hash list Decode to DecodeAndVerify. * Closes the client connection for snapshot ops. * Lowers timeout for restore ops. * Updates Raft vendor to get new Restore signature and integrates with Consul. * Bounces the leader's internal state when we do a restore.
2016-10-26 02:20:24 +00:00
<li<%= sidebar_current("docs-agent-http-snapshot") %>>
<a href="/docs/agent/http/snapshot.html">Snapshots</a>
</li>
2015-01-18 00:50:23 +00:00
<li<%= sidebar_current("docs-agent-http-status") %>>
<a href="/docs/agent/http/status.html">Status</a>
</li>
</ul>
2014-02-08 00:41:03 +00:00
</li>
<li<%= sidebar_current("docs-agent-config") %>>
<a href="/docs/agent/options.html">Configuration</a>
2015-01-18 00:50:23 +00:00
</li>
2014-02-19 02:05:18 +00:00
<li<%= sidebar_current("docs-agent-services") %>>
<a href="/docs/agent/services.html">Service Definitions</a>
2015-01-18 00:50:23 +00:00
</li>
2014-02-19 02:05:18 +00:00
<li<%= sidebar_current("docs-agent-checks") %>>
<a href="/docs/agent/checks.html">Check Definitions</a>
2014-02-08 00:41:03 +00:00
</li>
<li<%= sidebar_current("docs-agent-encryption") %>>
<a href="/docs/agent/encryption.html">Encryption</a>
2015-01-18 00:50:23 +00:00
</li>
2014-02-08 00:41:03 +00:00
<li<%= sidebar_current("docs-agent-rpc") %>>
<a href="/docs/agent/rpc.html">RPC Protocol</a>
</li>
<li<%= sidebar_current("docs-agent-telemetry") %>>
<a href="/docs/agent/telemetry.html">Telemetry</a>
2015-01-18 00:50:23 +00:00
</li>
2014-08-22 00:25:42 +00:00
<li<%= sidebar_current("docs-agent-watches") %>>
<a href="/docs/agent/watches.html">Watches</a>
2014-02-08 00:41:03 +00:00
</li>
2015-01-18 00:50:23 +00:00
</ul>
<li<%= sidebar_current("docs-guides") %>>
<a href="/docs/guides/index.html">Guides</a>
2015-02-07 00:34:07 +00:00
<ul class="nav">
<li<%= sidebar_current("docs-guides-atlas") %>>
<a href="/docs/guides/atlas.html">Atlas Integration</a>
</li>
<li<%= sidebar_current("docs-guides-servers") %>>
<a href="/docs/guides/servers.html">Adding/Removing Servers</a>
2015-01-18 00:50:23 +00:00
</li>
<li<%= sidebar_current("docs-guides-bootstrapping") %>>
<a href="/docs/guides/bootstrapping.html">Bootstrapping</a>
2015-01-18 00:50:23 +00:00
</li>
2014-06-09 00:26:41 +00:00
<li<%= sidebar_current("docs-guides-dns-cache") %>>
<a href="/docs/guides/dns-cache.html">DNS Caching</a>
</li>
2014-04-09 18:40:52 +00:00
<li<%= sidebar_current("docs-guides-forwarding") %>>
<a href="/docs/guides/forwarding.html">DNS Forwarding</a>
</li>
<li<%= sidebar_current("docs-guides-external") %>>
<a href="/docs/guides/external.html">External Services</a>
2015-01-18 00:50:23 +00:00
</li>
2015-01-18 00:50:23 +00:00
<li<%= sidebar_current("docs-guides-leader") %>>
<a href="/docs/guides/leader-election.html">Leader Election</a>
2015-01-18 00:50:23 +00:00
</li>
2015-01-18 00:50:23 +00:00
<li<%= sidebar_current("docs-guides-datacenters") %>>
<a href="/docs/guides/datacenters.html">Multiple Datacenters</a>
2015-01-18 00:50:23 +00:00
</li>
2015-01-18 00:50:23 +00:00
<li<%= sidebar_current("docs-guides-outage") %>>
<a href="/docs/guides/outage.html">Outage Recovery</a>
2016-08-25 23:47:54 +00:00
</li>
<li<%= sidebar_current("docs-guides-semaphore") %>>
<a href="/docs/guides/semaphore.html">Semaphore</a>
</li>
2016-08-25 23:44:52 +00:00
<li<%= sidebar_current("docs-guides-performance") %>>
<a href="/docs/guides/performance.html">Server Performance</a>
</li>
2016-08-25 23:47:54 +00:00
</ul>
2014-02-08 00:41:03 +00:00
2014-10-14 00:46:41 +00:00
<li<%= sidebar_current("docs-faq") %>>
<a href="/docs/faq.html">Frequently Asked Questions</a>
</li>
2014-02-08 00:41:03 +00:00
</ul>
</div>
<% end %>
<%= yield %>
<% end %>