# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

/build
/test_out
/dist
/gen
/bin
/server.config
/_sessions
/_accounts
/_deltas
/_attachments
/_certificates
/_indexes
/gwt-unitCache
war/WEB-INF
*.old
*.log*
/third_party/
/src/org/waveprotocol/box/server/rpc/atmosphere/atmosphere-min.js
/src/org/waveprotocol/box/server/rpc/atmosphere/atmosphere.js
.DS_Store
