<!DOCTYPE html><!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you 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.
 --><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Empire-db employee app using vue.js</title><link href=static/css/app.e9a48e50315162d817c7ee8c66488a75.css rel=stylesheet></head><body><div class=container><div id=app></div></div><script type=text/javascript src=static/js/manifest.dedad91e27787d615a8b.js></script><script type=text/javascript src=static/js/vendor.797030c921ced786bb0a.js></script><script type=text/javascript src=static/js/app.bc501c1e8b514ab4b2be.js></script></body></html>