Code Monkey home page Code Monkey logo

ansible / awx Goto Github PK

View Code? Open in Web Editor NEW
13.4K 373.0 3.3K 335.69 MB

AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is one of the upstream projects for Red Hat Ansible Automation Platform.

License: Other

Makefile 0.29% Python 53.06% HTML 0.13% PowerShell 0.04% CSS 0.08% JavaScript 45.24% Shell 0.15% Dockerfile 0.01% Batchfile 0.01% Jinja 0.99%
python ansible django django-rest-framework awx automation reactjs hacktoberfest

awx's Introduction

CI Code of Conduct Apache v2 License AWX Mailing List Ansible Matrix Ansible Discourse

AWX

AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is one of the upstream projects for Red Hat Ansible Automation Platform.

To install AWX, please view the Install guide.

To learn more about using AWX, view the AWX docs site.

The AWX Project Frequently Asked Questions can be found here.

The AWX logos and branding assets are covered by our trademark guidelines.

Contributing

  • Refer to the Contributing guide to get started developing, testing, and building AWX.
  • All code submissions are made through pull requests against the devel branch.
  • All contributors must use git commit --signoff for any commit to be merged and agree that usage of --signoff constitutes agreement with the terms of DCO 1.1
  • Take care to make sure no merge commits are in the submission, and use git rebase vs. git merge for this reason.
  • If submitting a large code change, it's a good idea to join the #ansible-awx channel on web.libera.chat and talk about what you would like to do or add first. This not only helps everyone know what's going on, but it also helps save time and effort if the community decides some changes are needed.

Reporting Issues

If you're experiencing a problem that you feel is a bug in AWX or have ideas for improving AWX, we encourage you to open an issue and share your feedback. But before opening a new issue, we ask that you please take a look at our Issues guide.

Code of Conduct

We ask all of our community members and contributors to adhere to the Ansible code of conduct. If you have questions or need assistance, please reach out to our community team at [email protected]

Get Involved

We welcome your feedback and ideas. Here's how to reach us with feedback and questions:

awx's People

Contributors

alancoding avatar alexscorey avatar anoek avatar ansiblegalaxy avatar beeankha avatar cchurch avatar chrismeyersfsu avatar fosterseth avatar jakemcdermott avatar jangsutsr avatar jaredevantabor avatar jbradberry avatar jlaska avatar joefiorini avatar john-westcott-iv avatar keithjgrant avatar kensible avatar kialam avatar lukesneeringer avatar mabashian avatar marshmalien avatar matburt avatar nixocio avatar rooftopcellist avatar ryanpetrello avatar shanemcd avatar softwarefactory-project-zuul[bot] avatar therealhaoliu avatar wenottingham avatar wwitzel3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awx's Issues

Production Install seems to fail before migrations have run

Summary

When AWX is first deployed it will start running migrations, this isn't obvious from the user interface and causes errors to be displayed as though something had gone wrong with the deployment when in actuality, we're still waiting for the migrations to run.

Environment

  • AWX version: 1.0.0.263

Steps To Reproduce:

Install a fresh AWX container set

Expected Results:

A placeholder page is displayed until the migrations have finished

Actual Results:

The interface shows errors until after the migration is finished on the task container

Additional Information:

issue running the install playbook on fedora 26

Summary

Selinux error when install playbook on fedora 26.
SELinux is preventing chown from 'read' accesses on the directory pgdocker.

Environment

  • Operating System: Fedora 26 workstation

Steps To Reproduce:

  1. Install fedora 26 workstation
  2. dnf install -y docker git
  3. Enable selinux enforcing active
cd /home/$USER/Downloads/
git clone https://github.com/ansible/awx.git
cd awx/installer
ansible-playbook -i inventory install.yml

Expected Results:

Installed Ansible AWX

Actual Results:

SELinux is preventing chown from 'read' accesses on the directory pgdocker.

Additional Information:

More info in bugtracker
https://bugzilla.redhat.com/show_bug.cgi?id=1489972

Feature: Settings menu reorganization

AWX Feature Spec - Settings menu re-org

User Persona

Administrator
Org admin
Automation user

Usage Cases

We have a bit of a conceptual and place mishmash between:

  • top-row menu items
  • assorted cards under settings
  • the actual 'Configure AWX' card and its tabs

The goal is to audit and rearrange to properly sort out:

  • items for normal usage by automation users
  • items for org admin+ users to configure as "things in AWX for others to use"
  • items for system admin to configure re: "the operation of AWX itself"

Current items and locations:

  • Projects (top bar)
  • Inventories (top bar)
  • Templates (top bar)
  • Jobs (top bar)
  • User link (top bar)
  • Settings (top bar)
  • Portal mode (top bar)
  • Help/Manual (top bar)
  • Logout (top bar)
  • Orgs (settings)
  • Users (settings)
  • Teams (settings)
  • Credentials (settings)
  • Management jobs (settings)
  • Inventory scripts (settings)
  • Notifications (settings)
  • View License (settings)
  • Instance Groups (settings)
  • Configure AWX (settings)
  • Auth (Configure AWX, with dropdown tabs)
  • Random Job Stuff (Configure AWX)
  • System Misc (Configure AWX, under tab)
  • Logging (Configure AWX, under tab)
  • Activity Stream (Configure AWX, under tab)
  • Random UI Settings (Configure AWX)
  • About AWX (settings)

API Considerations

Little to none

UI/UX Considerations

Yes!

Docs

QA Suggestions

Notes

Updates/Changelog
2017-09-08: intiial/updated version

On Docker for Mac, playbook runs fail with 'uid not found: 1000'

Summary

I'm still trying to see exactly what's going wrong, but basically on my Mac, when I run the awx_web and awx_task containers as built by the installer playbook, something with the USER Docker uses seems to be confusing AWX, because all playbook runs fail immediately (on their first task) with KeyError: 'getpwuid(): uid not found: 1000'.

Environment

  • AWX version: 1.0.0-[something]
  • Ansible version: 2.3.1
  • Operating System: macOS 10.12
  • Web Browser: Safari

Steps To Reproduce:

curl -O https://raw.githubusercontent.com/geerlingguy/awx-container/master/docker-compose.yml
docker-compose up -d

(The two containers referenced by that docker-compose.yml file are built by this awx-container project, which reuses the Dockerfiles and configuration from the AWX installer playbook.)

Expected Results:

Playbooks should run (including the playbook that pulls the latest version of a project repository).

Actual Results:

Every playbook run (e.g. the demo project git pull playbook) fails on the first task with the error as displayed below:

PLAY [all] *********************************************************************

TASK [delete project directory before update] **********************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: KeyError: 'getpwuid(): uid not found: 1000'
fatal: [localhost]: FAILED! => {"failed": true, "msg": "Unexpected failure during module execution.", "stdout": ""}

Additional Information:

If I run whoami, I get cannot find name for user ID 1000:

$ docker exec e8662 whoami
whoami: cannot find name for user ID 1000

Cluster Host ID Error

Summary

Trying to run this as a distributed deployment in kubernetes. Most endpoints work but some come back with a 500 server error that states there is no instance found with the current cluster host id.

Environment

Kubernetes, latest container build from awx

Steps To Reproduce:

  • Deploy this repo to a k8s cluster: http://github.com/rossedman/ansible-awx-kubernetes
  • Wait for system to boot up
  • Login and change password, change default inventory (everything works fine)
  • Try to create a new project using git as scm, and error will be thrown.
RuntimeError: No instance found with the current cluster host id

Expected Results:

I do not understand why some endpoints work and some do not. My best guess is this has something to do with the container host names. My task container is registered as an instance in the tower group with the proper name.

Actual Results:

Certain features are available and certain ones are not. It appears I can do these things:

  • Create new credentials
  • Update user, create use, delete user
  • Update organization
  • Create/update inventory
  • Run management jobs

I cannot do these things

  • Create new project
  • Update project

Any help would be appreciated. Just trying to understand general configuration and how to run this in Kubernetes.

Thanks

Other Information

I scaled up the task agents in kubernetes and they all connected and were available to use and that didn't seem to cause any problems.

Ability to configure entire system for DataDog Ansible integration

DataDog has an integration that saves and visualizes metrics from playbook runs:

https://docs.datadoghq.com/integrations/ansible/

This works via a callback plugin, details here:

https://github.com/DataDog/ansible-datadog-callback

See Installation section

Copy datadog_callback.py to your playbook callback directory (by default callback_plugins/ in your playbook's root directory). Create the directory if it doesn't exist.
Create a datadog_callback.yml file alongside datadog_callback.py, and set its contents with your API key, as following:

We should have a way to enable this for all playbook runs inside of AWX, instead of a one-off configuration for every playbook directory.

Missing which

Summary

Hi, I wanted to add inventory sourced from a project. When I start sync, it returns the error below.
When I installed which on docker container awx_tasks, synchronization was successful.

Environment

  • AWX version: latest
  • Ansible version: latest from epel
  • Operating System: Centos latest
  • Web Browser: Chrome

Steps To Reproduce:

  1. Build images
  2. Add project
  3. Add inventory sourced from a project
  4. Try sync hosts

Expected Results:

synchronizes inventory

Actual Results:

Synchronize return with status failed

Additional Information:

2017-09-07 20:31:44,578 INFO     awx.main.commands.inventory_import Updating inventory 3: XXX
2017-09-07 20:31:44,591 DEBUG    awx.main.commands.inventory_import Using backported ansible-inventory module: /usr/lib/python2.7/site-packages/awx/plugins/ansible_inventory/backport.py
2017-09-07 20:31:44,591 INFO     awx.main.commands.inventory_import Reading Ansible inventory source: /var/lib/awx/projects/_8__aXXX
Traceback (most recent call last):
  File "/usr/bin/awx-manage", line 9, in <module>
    load_entry_point('awx==1.0.0.280', 'console_scripts', 'awx-manage')()
  File "/usr/lib/python2.7/site-packages/awx/__init__.py", line 107, in manage
    execute_from_command_line(sys.argv)
  File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/__init__.py", line 346, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/base.py", line 661, in handle
    return self.handle_noargs(**options)
  File "/usr/lib/python2.7/site-packages/awx/main/management/commands/inventory_import.py", line 955, in handle_noargs
    self.is_custom)
  File "/usr/lib/python2.7/site-packages/awx/main/management/commands/inventory_import.py", line 210, in load_inventory_source
    is_custom=is_custom).load()
  File "/usr/lib/python2.7/site-packages/awx/main/management/commands/inventory_import.py", line 179, in load
    data = self.command_to_json(base_args + ['--list'])
  File "/usr/lib/python2.7/site-packages/awx/main/management/commands/inventory_import.py", line 163, in command_to_json
    self.method, proc.returncode, stdout, stderr))
RuntimeError: ansible-inventory backport failed (rc=1) with stdout:

stderr:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/awx/plugins/ansible_inventory/backport.py", line 323, in <module>
    ansible_path = subprocess.check_output(['which', 'ansible']).strip()
  File "/usr/lib64/python2.7/subprocess.py", line 568, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

Builder image for sdist creation

Summary

After witnessing the majority of issues that people have been experiencing yesterday and today, we should create a builder image that handles the creation of the sdist. Supporting every OS is probably untenable.

We'll want to bind-mount the project root and dump out the artifact(s) in the appropriate location(s).

Additional Information:

Base image should be FROM centos:7 and install the dependencies necessary for creating the sdist to hand off to the other image builds.

Error installing on ubuntu 16.04

Summary

I tried installing awx on a digital ocean ubuntu droplet and ran into a error when installing. Anybody know how to fix this?

Environment

  • AWX version: 1.0.0
  • Ansible version: 2.3.2.0
  • Operating System: Ubuntu 16.04.3

Steps To Reproduce:

Create

  1. a ubuntu droplet and login
  2. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  3. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  4. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
  5. sudo apt-add-repository ppa:ansible/ansible
  6. sudo apt-get update
  7. sudo apt-get install -y software-properties-common ansible apt-transport-https ca-certificates curl software-properties-common docker-ce nodejs python-pip
  8. npm install npm@latest -g
  9. pip install docker-py
  10. git clone https://github.com/ansible/awx.git
  11. cd awx/installer
  12. ansible-playbook -i inventory install.yml

Expected Results:

Finished installing awx

Actual Results:

root@ubuntu-2gb-ams2-01:~/awx/installer# ansible-playbook -i inventory install.yml

PLAY [Build and deploy AWX] *****************************************************************************************************************************************************************************************************************

TASK [check_vars : awx_openshift_project should be defined] *********************************************************************************************************************************************************************************
skipping: [localhost]

TASK [check_vars : openshift_user should be defined] ****************************************************************************************************************************************************************************************
skipping: [localhost]

TASK [check_vars : openshift_password should be defined] ************************************************************************************************************************************************************************************
skipping: [localhost]

TASK [check_vars : awx_node_port should be defined] *****************************************************************************************************************************************************************************************
skipping: [localhost]

TASK [check_vars : docker_registry should be defined] ***************************************************************************************************************************************************************************************
skipping: [localhost]

TASK [check_vars : docker_registry_repository should be defined] ****************************************************************************************************************************************************************************
skipping: [localhost]

TASK [check_vars : docker_registry_username should be defined] ******************************************************************************************************************************************************************************
skipping: [localhost]

TASK [check_vars : docker_registry_password should be defined] ******************************************************************************************************************************************************************************
skipping: [localhost]

TASK [check_vars : postgres_data_dir should be defined] *************************************************************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [check_vars : host_port should be defined] *********************************************************************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [image_build : Get Version from checkout if not provided] *****************
changed: [localhost -> localhost]

TASK [image_build : Set global version if not provided] ************************
ok: [localhost]

TASK [image_build : Verify awx-logos directory exists for official install] ****
skipping: [localhost]

TASK [image_build : Copy logos for inclusion in sdist] *************************
skipping: [localhost]

TASK [image_build : Set sdist file name] ***************************************
ok: [localhost]

TASK [image_build : AWX Distribution] ******************************************
ok: [localhost] => {
    "msg": "awx-1.0.0.296.tar.gz"
}

TASK [image_build : Stat distribution file] ************************************
ok: [localhost -> localhost]

TASK [image_build : Clean distribution] ****************************************
changed: [localhost -> localhost]

TASK [image_build : Build AWX distribution] ************************************
fatal: [localhost -> localhost]: FAILED! => {"changed": true, "cmd": "make sdist", "delta": "0:01:05.039753", "end": "2017-09-08 19:49:58.185582", "failed": true, "rc": 2, "start": "2017-09-08 19:48:53.145829", "stderr": "../src/contextify.cc: In static member function 'static v8::Local<v8::Context> ContextWrap::createV8Context(v8::Local<v8::Object>)':\n../src/contextify.cc:131:68: warning: 'v8::Local<v8::Object> v8::Function::NewInstance() const' is deprecated: Use maybe version [-Wdeprecated-declarations]\n         Local<Object> wrapper = Nan::New(constructor)->NewInstance();\n                                                                    ^\nIn file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,\n                 from /root/.node-gyp/6.11.3/include/node/node.h:42,\n                 from ../src/contextify.cc:1:\n/root/.node-gyp/6.11.3/include/node/v8.h:3276:52: note: declared here\n   V8_DEPRECATED(\"Use maybe version\", Local<Object> NewInstance() const);\n                                                    ^\n/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'\n   declarator __attribute__((deprecated(message)))\n   ^\n../src/contextify.cc:151:72: warning: 'void v8::ObjectTemplate::SetAccessCheckCallbacks(v8::NamedSecurityCallback, v8::IndexedSecurityCallback, v8::Local<v8::Value>)' is deprecated: Use SetAccessCheckCallback instead [-Wdeprecated-declarations]\n                                        GlobalPropertyIndexedAccessCheck);\n                                                                        ^\nIn file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,\n                 from /root/.node-gyp/6.11.3/include/node/node.h:42,\n                 from ../src/contextify.cc:1:\n/root/.node-gyp/6.11.3/include/node/v8.h:4805:12: note: declared here\n       void SetAccessCheckCallbacks(NamedSecurityCallback named_handler,\n            ^\n/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'\n   declarator __attribute__((deprecated(message)))\n   ^\n../src/contextify.cc: In static member function 'static void ContextWrap::GlobalPropertyGetter(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Value>&)':\n../src/contextify.cc:182:80: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]\n         Local<Value> rv = Nan::New(ctx->sandbox)->GetRealNamedProperty(property);\n                                                                                ^\nIn file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,\n                 from /root/.node-gyp/6.11.3/include/node/node.h:42,\n                 from ../src/contextify.cc:1:\n/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here\n                 Local<Value> GetRealNamedProperty(Local<String> key));\n                              ^\n/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'\n   declarator __attribute__((deprecated(message)))\n   ^\n../src/contextify.cc: In static member function 'static void ContextWrap::GlobalPropertyQuery(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Integer>&)':\n../src/contextify.cc:209:67: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]\n         if (!Nan::New(ctx->sandbox)->GetRealNamedProperty(property).IsEmpty() ||\n                                                                   ^\nIn file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,\n                 from /root/.node-gyp/6.11.3/include/node/node.h:42,\n                 from ../src/contextify.cc:1:\n/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here\n                 Local<Value> GetRealNamedProperty(Local<String> key));\n                              ^\n/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'\n   declarator __attribute__((deprecated(message)))\n   ^\n../src/contextify.cc:210:71: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]\n             !Nan::New(ctx->proxyGlobal)->GetRealNamedProperty(property).IsEmpty()) {\n                                                                       ^\nIn file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,\n                 from /root/.node-gyp/6.11.3/include/node/node.h:42,\n                 from ../src/contextify.cc:1:\n/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here\n                 Local<Value> GetRealNamedProperty(Local<String> key));\n                              ^\n/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'\n   declarator __attribute__((deprecated(message)))\n   ^\nnpm WARN [email protected] No license field.\n\nTraceback (most recent call last):\n  File \"tools/scripts/compilemessages.py\", line 154, in <module>\n    output, errors, status = popen_wrapper(args)\n  File \"tools/scripts/compilemessages.py\", line 44, in popen_wrapper\n    (args[0], strerror)), sys.exc_info()[2])\nException: (<type 'exceptions.StandardError'>, StandardError('Error executing msgfmt: No such file or directory',), <traceback object at 0x7fa7e7f98b00>)\nmake: *** [.i18n_built] Error 1", "stderr_lines": ["../src/contextify.cc: In static member function 'static v8::Local<v8::Context> ContextWrap::createV8Context(v8::Local<v8::Object>)':", "../src/contextify.cc:131:68: warning: 'v8::Local<v8::Object> v8::Function::NewInstance() const' is deprecated: Use maybe version [-Wdeprecated-declarations]", "         Local<Object> wrapper = Nan::New(constructor)->NewInstance();", "                                                                    ^", "In file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,", "                 from /root/.node-gyp/6.11.3/include/node/node.h:42,", "                 from ../src/contextify.cc:1:", "/root/.node-gyp/6.11.3/include/node/v8.h:3276:52: note: declared here", "   V8_DEPRECATED(\"Use maybe version\", Local<Object> NewInstance() const);", "                                                    ^", "/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'", "   declarator __attribute__((deprecated(message)))", "   ^", "../src/contextify.cc:151:72: warning: 'void v8::ObjectTemplate::SetAccessCheckCallbacks(v8::NamedSecurityCallback, v8::IndexedSecurityCallback, v8::Local<v8::Value>)' is deprecated: Use SetAccessCheckCallback instead [-Wdeprecated-declarations]", "                                        GlobalPropertyIndexedAccessCheck);", "                                                                        ^", "In file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,", "                 from /root/.node-gyp/6.11.3/include/node/node.h:42,", "                 from ../src/contextify.cc:1:", "/root/.node-gyp/6.11.3/include/node/v8.h:4805:12: note: declared here", "       void SetAccessCheckCallbacks(NamedSecurityCallback named_handler,", "            ^", "/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'", "   declarator __attribute__((deprecated(message)))", "   ^", "../src/contextify.cc: In static member function 'static void ContextWrap::GlobalPropertyGetter(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Value>&)':", "../src/contextify.cc:182:80: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]", "         Local<Value> rv = Nan::New(ctx->sandbox)->GetRealNamedProperty(property);", "                                                                                ^", "In file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,", "                 from /root/.node-gyp/6.11.3/include/node/node.h:42,", "                 from ../src/contextify.cc:1:", "/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here", "                 Local<Value> GetRealNamedProperty(Local<String> key));", "                              ^", "/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'", "   declarator __attribute__((deprecated(message)))", "   ^", "../src/contextify.cc: In static member function 'static void ContextWrap::GlobalPropertyQuery(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Integer>&)':", "../src/contextify.cc:209:67: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]", "         if (!Nan::New(ctx->sandbox)->GetRealNamedProperty(property).IsEmpty() ||", "                                                                   ^", "In file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,", "                 from /root/.node-gyp/6.11.3/include/node/node.h:42,", "                 from ../src/contextify.cc:1:", "/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here", "                 Local<Value> GetRealNamedProperty(Local<String> key));", "                              ^", "/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'", "   declarator __attribute__((deprecated(message)))", "   ^", "../src/contextify.cc:210:71: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]", "             !Nan::New(ctx->proxyGlobal)->GetRealNamedProperty(property).IsEmpty()) {", "                                                                       ^", "In file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,", "                 from /root/.node-gyp/6.11.3/include/node/node.h:42,", "                 from ../src/contextify.cc:1:", "/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here", "                 Local<Value> GetRealNamedProperty(Local<String> key));", "                              ^", "/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'", "   declarator __attribute__((deprecated(message)))", "   ^", "npm WARN [email protected] No license field.", "", "Traceback (most recent call last):", "  File \"tools/scripts/compilemessages.py\", line 154, in <module>", "    output, errors, status = popen_wrapper(args)", "  File \"tools/scripts/compilemessages.py\", line 44, in popen_wrapper", "    (args[0], strerror)), sys.exc_info()[2])", "Exception: (<type 'exceptions.StandardError'>, StandardError('Error executing msgfmt: No such file or directory',), <traceback object at 0x7fa7e7f98b00>)", "make: *** [.i18n_built] Error 1"], "stdout": "npm --unsafe-perm --prefix awx/ui install awx/ui\n\n> [email protected] install /root/awx/awx/ui/node_modules/contextify\n> node-gyp rebuild\n\nmake[1]: Entering directory '/root/awx/awx/ui/node_modules/contextify/build'\n  CXX(target) Release/obj.target/contextify/src/contextify.o\n  SOLINK_MODULE(target) Release/obj.target/contextify.node\n  COPY Release/contextify.node\nmake[1]: Leaving directory '/root/awx/awx/ui/node_modules/contextify/build'\n\n> [email protected] install /root/awx/awx/ui/node_modules/phantomjs-prebuilt\n> node install.js\n\nPhantomJS not found on PATH\nDownload already available at /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2\nVerified checksum of previously downloaded file\nExtracting tar contents (via spawned process)\nRemoving /root/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom\nCopying extracted folder /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1504900185126/phantomjs-2.1.1-linux-x86_64 -> /root/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom\nWriting location.js file\nDone. Phantomjs binary available at /root/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs\n\n> [email protected] install /root/awx/awx/ui/node_modules/wd\n> node scripts/build-browser-scripts\n\n\n> [email protected] postinstall /root/awx/awx/ui/node_modules/sauce-connect-launcher\n> node scripts/install.js || nodejs scripts/install.js\n\nadded 1041 packages in 59.041s\ntouch awx/ui/.deps_built\nnpm --prefix awx/ui run languages\n\n> [email protected] languages /root/awx/awx/ui\n> grunt nggettext_compile\n\nRunning \"nggettext_compile:all\" (nggettext_compile) task\n\nDone.\n\n\nExecution Time (2017-09-08 19:49:56 UTC-0)\nloading tasks          465ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 56%\nnggettext_compile:all  364ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 44%\nTotal 830ms\n\npython tools/scripts/compilemessages.py\nprocessing file django.po in /root/awx/awx/locale/nl/LC_MESSAGES\n\nMakefile:457: recipe for target '.i18n_built' failed", "stdout_lines": ["npm --unsafe-perm --prefix awx/ui install awx/ui", "", "> [email protected] install /root/awx/awx/ui/node_modules/contextify", "> node-gyp rebuild", "", "make[1]: Entering directory '/root/awx/awx/ui/node_modules/contextify/build'", "  CXX(target) Release/obj.target/contextify/src/contextify.o", "  SOLINK_MODULE(target) Release/obj.target/contextify.node", "  COPY Release/contextify.node", "make[1]: Leaving directory '/root/awx/awx/ui/node_modules/contextify/build'", "", "> [email protected] install /root/awx/awx/ui/node_modules/phantomjs-prebuilt", "> node install.js", "", "PhantomJS not found on PATH", "Download already available at /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2", "Verified checksum of previously downloaded file", "Extracting tar contents (via spawned process)", "Removing /root/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom", "Copying extracted folder /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1504900185126/phantomjs-2.1.1-linux-x86_64 -> /root/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom", "Writing location.js file", "Done. Phantomjs binary available at /root/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs", "", "> [email protected] install /root/awx/awx/ui/node_modules/wd", "> node scripts/build-browser-scripts", "", "", "> [email protected] postinstall /root/awx/awx/ui/node_modules/sauce-connect-launcher", "> node scripts/install.js || nodejs scripts/install.js", "", "added 1041 packages in 59.041s", "touch awx/ui/.deps_built", "npm --prefix awx/ui run languages", "", "> [email protected] languages /root/awx/awx/ui", "> grunt nggettext_compile", "", "Running \"nggettext_compile:all\" (nggettext_compile) task", "", "Done.", "", "", "Execution Time (2017-09-08 19:49:56 UTC-0)", "loading tasks          465ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 56%", "nggettext_compile:all  364ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 44%", "Total 830ms", "", "python tools/scripts/compilemessages.py", "processing file django.po in /root/awx/awx/locale/nl/LC_MESSAGES", "", "Makefile:457: recipe for target '.i18n_built' failed"]}
        to retry, use: --limit @/root/awx/installer/install.retry

PLAY RECAP **********************************************************************************************************************************************************************************************************************************
localhost                  : ok=8    changed=2    unreachable=0    failed=1


When using awx_official and a remote host; synchronize task wil fail

Summary

During install; when using the official branding – by setting awx_official=true – there will be a task making use of the module synchronize. When also running the playbook against a remote host; this taks will fail, where a password is asked to authenticate against the remote machine. The copy should – however – take place on the local machine only.

Environment

  • AWX version: 1.0.0.294 / commit id 2fb9b6c
  • Ansible version: 2.3.2.0
  • Operating System: Ubuntu 17.04
  • Web Browser: N/A

Steps To Reproduce:

  1. Check out both https://github.com/ansible/awx.git and https://github.com/ansible/awx-logos.git
  2. Change the awx/installer/inventory file:
    set awx_official=true
    change localhost ansible_connection=local into a remote host; using the correct settings for user and privilege elevetion method.
    awx.local ansible_user=ubuntu ansible_become=yes ansible_become_method=sudo
    to create a temp host, one can use this Vagrantfile; place it in a folder and run vagrant up. One needs to have vagrant and Virtualbox installed. Change your hosts file to contain the ip pointing to awx.local.
  3. Go to the installer directory and run ansible-playbook -i inventory install.yml

Expected Results:

The playbook to finish installing AWX, without asking me for a password during the play.

Actual Results:

During task Copy logos for inclusion in sdist, a password is requested to authenticate the local user against the remote machine.

TASK [image_build : Copy logos for inclusion in sdist] *************************
[email protected]'s password:

Additional Information:

This thread on StackOverflow also speaks about the synchronize module not playing nice with delegate_to: localhost. The clue seems to be that this will only work when the inventory contains localhost and not a remote host.

Feature: Automatic API docs generation

AWX Feature Spec - Automatic API docs generation

User Persona

Person writing API integrations

Usage Cases

We have a lovely, browseable, API with docs. However, people want to be able
to browse the API docs (or historical API docs) without standing up Tower.
Ergo, we should automatically generate them.

API Considerations

TBD.

UI/UX Considerations

None.

Docs

QA Suggestions

Notes

per @j00bar:

Check out generating Sphinx docs from DRF autodocs via Swagger YAML specifications
https://github.com/marcgibbons/django-rest-swagger
https://github.com/unaguil/sphinx-swagger

Updates/Changelog
2017-09-08: initial version

Push awx web and task to docker hub

What do you think about pushing (not manually) both images awx_task and awx_web on docker hub. In order to allow anybody deploy awx on docker stack without performing pre-install phase

Makefiles should perhaps be renamed to GNUMakefile

Summary

The Makefile's included with the project are not compatible with non-GNU versions of make(1). Therefore, according to the GNU Make docs, they should be called GNUMakefile:

https://www.gnu.org/software/make/manual/make.html#Makefile-Names

The first name checked, GNUmakefile, is not recommended for most makefiles. You should use this name if you have a makefile that is specific to GNU make, and will not be understood by other versions of make. Other make programs look for makefile and Makefile, but not GNUmakefile.

Environment

  • AWX version: devel
  • Ansible version: 2.3.2.0
  • Operating System: FreeBSD
  • Web Browser: Firefox

Steps To Reproduce:

Try to run the install playbook.

Expected Results:

Correct build

Actual Results:

make: ".../awx/Makefile" line 35: Missing dependency operator

Additional Information:

Calling gmake instead of make avoids the issue, but perhaps renaming is a better solution. Up to you.

Feature: Project-based navigation

AWX Feature Spec - Project-based navigation

User Persona

Automation user

Usage Cases

We already have links in the API to easily show all job templates that go to
a project.

This should be surfaced in the UI for Projects as another tab in the project
view. Arguably it should be the default tab.

API Considerations

Next to none.

UI/UX Considerations

A new view.

Docs

QA Suggestions

Notes

Updates/Changelog
2017-09-08: initial revision

Restore previous release tags

Summary

It appears this repo served as the upstream for historical releases of Ansible Tower. It would be great if this release preserved the tags of the original repo for code reference and comparison, such as easy diffs.

My purpose of this is mostly to give students (or random developers starting a Django project again) starting out with single-page-js + Django REST Framework an example of an early evolving Django REST Framework project (and various methods of modelling access control), but also to more easily see how certain features evolved over time. In particular, Tower customized RBAC and did some things with DJRF options that were clever/useful.

This may also help those who want to craft/improve alternative setup and development instructions by exploring the non-Docker install versions of those instructions.

Environment

N/A

Steps To Reproduce:

Browse tags in GitHub, note that only a 1.0.0 is present

Expected Results:

All historical tags would still be present.

Actual Results:

Only a 1.0.0 tag is present, a release number that doesn't align with tower releases.

Additional Information:

N/A

Web UI: Footer obscures buttons on some screens

Summary

Web UI: Footer obscures buttons on some screens

Environment

  • AWX version: devel
  • Ansible version: 2.3
  • Operating System: Centos 7.3
  • Web Browser: Firefox 55.0.2 on Fedora 26

Steps To Reproduce:

Use Firefox, browse to Settings and select LDAP from the Subcategory menu

Expected Results:

Should see Cancel and Save buttons when scrolled to the bottom.

Actual Results:

Footer obscures the buttons.

Additional Information:

screenshot from 2017-09-08 13-12-41

Settings icon/option from left menu panel is not visible in small browser windows as well as in 100% zoom.

Summary

Settings icon from left menu panel is not visible on 100 % zoom, as well as on small windows size. it get visible if we zoom out to 90%.

Branch:

Devel

Environment

  • AWX version: 1.0.0.269
  • Ansible version: 2.3.1.0
  • Operating System: Fedora 25
  • Web Browser: Chrome 60 , Firefox 55 64 bit.

Steps To Reproduce:

  • Clone this project and do setup/installation.
  • Open the AWX Ansible instance on Chrome and firfox browser.
  • Observe the left menu panel option.
  • If the browser is 100% zoom you will not able to see settings icon/option on Firefox and on chrome, you will see settings option is cut.
  • Double click on browser top to minimize the browser window size.
  • Again observe the menu icons.
  • Now zoom out the page to 90% or below.
  • Scroll the menu panel and observe menu items.

Expected Results:

  • Settings menu option from left menu panel should be visible all the time.

Actual Results:

  • Settings menu not visible on firefox on 100% zoom.
  • Settings menu getting half cut on chrome browser.
  • Settings option/menu gets visible if we zoom-out browser to 90% or below.
  • After zoomout to 90% if we minize the window size again that option get invisible.

Additional Information:

  • Attached screen captured for more info.

90 -zoom

100 _fullscreen
screenshot from 2017-09-07 14-37-38
screenshot from 2017-09-07 14-38-16

chrome_1005_fullscreen

screenshot from 2017-09-07 14-38-38

Feature: Select All/Batch Operations

AWX Feature Spec - Select All/Batch Operations

User Persona

AWX admin/org admin

Use cases

In prior releases, complex filtering and sorting was added throughout AWX,
allowing users to easily see the 5/10/100 items they want to operate on. We
should allow them to easily select some or all of these filtered items at
once, and operate on them.

Example:

  • As a user editing my inventory, I want to select all subgroups, or hosts in a group, with a single click, and then delete them/run a command on them/etc.
  • As a admin/org admin/user assigning permissions to multiple job templates, or adding permissions for multiple teams, I should be able to select all items that match my filter with a single click to then add permissions.
  • As an admin managing job templates, I should be able to select with a single click all items matching my filter, and delete them/launch them/etc.
  • As an admin cleaning old job history, I should be able to select with a single click all items matching my filter, and delete them.

This should have proper support for pagination, including:

  • selecting all items on the page
  • selecting all items that match the filter regardless of pagination

API Considerations

Likely need support for batched operations, including returning status on
items that have changed.

UI/UX Considerations

Likely needs support for refreshing a list properly after batched operations
change multiple items.

Docs

QA Suggestions

Notes

Examples:

  • Gmail multiple select and operate
  • GitHub issues multiple select and operate

Updates/Changelog

2017-09-06: initial/updated version

Feature: Programmable surveys

AWX Feature Spec - Programmable Surveys

User Persona

Administrator delegating jobs to user
Delegated automation user

Usage Cases

High-level:

  • Administrator wants to present to the user a list of builds to choose to deploy.
  • Administrator wants to present to the user a verified list of configuration parameters to push to the chosen network devices.
  • Adminsitrator wants to present survey chocies that depend on prior survey choices, such as a choice to select an AWS region based on 'AWS' being a prior survey answer.

API Considerations

We must keep the survey JSON specification stable, or CLEARLY notify users when it changes. This may require a v2 survey spec.

http://json-schema.org/ may be of use.

UI/UX Considerations

Larger surveys should have options to collapse questions until needed. (c.f. #290)

Docs

Should have sample survey examples

QA Suggestions

Notes

Updates/Changelog

2017-09-06: initial/updated spec
2017-09-25: added note about collapsible surveys

Issue with Self-Signed Certificates

Summary

Despite setting NPM to use the HTTP registry, git config http.sslVerify false, and trying to set NPM ca to null it doesn't seem to be respecting the use of a corporate self-signed certificate.

Environment

Steps To Reproduce:

Use Enterprise self-signed certificate and add it to the CentOS server using:

cp foo.crt /etc/pki/ca-source/source/anchors
update-ca-trust extract

then try to run the install playbook (local docker version)

Expected Results:

Completion of Ansible Playbook

Actual Results:

NPM err! git clone on the Build AWX Distribution Task of image_build

Additional Information:

Full error:
fatal: [localhost -> localhost]: FAILED! => {"changed": true, "cmd": "make sdist", "delta": "0:15:42.611880", "end": "2017-09-07 10:10:28.688145", "failed": true, "rc": 2, "start": "2017-09-07 09:54:46.076265", "stderr": "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/jkbrzt/rrule.git /root/.npm/_git-remotes/git-github-com-jkbrzt-rrule-git-4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c-f2d4f677: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-jkbrzt-rrule-git-4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c-f2d4f677'...\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/jkbrzt/rrule.git /root/.npm/_git-remotes/git-github-com-jkbrzt-rrule-git-4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c-f2d4f677: \nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/jkbrzt/rrule.git /root/.npm/_git-remotes/git-github-com-jkbrzt-rrule-git-4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c-f2d4f677: fatal: read error: Connection timed out\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-drag-and-drop-lists.git /root/.npm/_git-remotes/git-github-com-ansible-angular-drag-and-drop-lists-git-4d32654ab7159689a7767b9be8fc85f9812ca5a8-33d66294: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-angular-drag-and-drop-lists-git-4d32654ab7159689a7767b9be8fc85f9812ca5a8-33d66294'...\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-drag-and-drop-lists.git /root/.npm/_git-remotes/git-github-com-ansible-angular-drag-and-drop-lists-git-4d32654ab7159689a7767b9be8fc85f9812ca5a8-33d66294: \nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-drag-and-drop-lists.git /root/.npm/_git-remotes/git-github-com-ansible-angular-drag-and-drop-lists-git-4d32654ab7159689a7767b9be8fc85f9812ca5a8-33d66294: fatal: read error: Connection timed out\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/timezone-js.git /root/.npm/_git-remotes/git-github-com-ansible-timezone-js-git-6937de14ce0c193961538bb5b3b12b7ef62a358f-d653e9e1: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-timezone-js-git-6937de14ce0c193961538bb5b3b12b7ef62a358f-d653e9e1'...\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/timezone-js.git /root/.npm/_git-remotes/git-github-com-ansible-timezone-js-git-6937de14ce0c193961538bb5b3b12b7ef62a358f-d653e9e1: \nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/timezone-js.git /root/.npm/_git-remotes/git-github-com-ansible-timezone-js-git-6937de14ce0c193961538bb5b3b12b7ef62a358f-d653e9e1: fatal: read error: Connection timed out\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-codemirror.git /root/.npm/_git-remotes/git-github-com-ansible-angular-codemirror-git-75c3a2d0ccdf2e4c836fab7d7617d5db6c585c1b-799d0573: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-angular-codemirror-git-75c3a2d0ccdf2e4c836fab7d7617d5db6c585c1b-799d0573'...\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-codemirror.git /root/.npm/_git-remotes/git-github-com-ansible-angular-codemirror-git-75c3a2d0ccdf2e4c836fab7d7617d5db6c585c1b-799d0573: \nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-codemirror.git /root/.npm/_git-remotes/git-github-com-ansible-angular-codemirror-git-75c3a2d0ccdf2e4c836fab7d7617d5db6c585c1b-799d0573: fatal: read error: Connection timed out\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-tz-extensions.git /root/.npm/_git-remotes/git-github-com-ansible-angular-tz-extensions-git-33caaa9ccf5dfe29a95962c17c3c9e6b9775be35-a87177b8: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-angular-tz-extensions-git-33caaa9ccf5dfe29a95962c17c3c9e6b9775be35-a87177b8'...\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-tz-extensions.git /root/.npm/_git-remotes/git-github-com-ansible-angular-tz-extensions-git-33caaa9ccf5dfe29a95962c17c3c9e6b9775be35-a87177b8: \nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-tz-extensions.git /root/.npm/_git-remotes/git-github-com-ansible-angular-tz-extensions-git-33caaa9ccf5dfe29a95962c17c3c9e6b9775be35-a87177b8: fatal: read error: Connection timed out\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-scheduler.git /root/.npm/_git-remotes/git-github-com-ansible-angular-scheduler-git-9f2893a54c758b05bd6afce897488c01a6e8959d-9914d692: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-angular-scheduler-git-9f2893a54c758b05bd6afce897488c01a6e8959d-9914d692'...\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-scheduler.git /root/.npm/_git-remotes/git-github-com-ansible-angular-scheduler-git-9f2893a54c758b05bd6afce897488c01a6e8959d-9914d692: \nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-scheduler.git /root/.npm/_git-remotes/git-github-com-ansible-angular-scheduler-git-9f2893a54c758b05bd6afce897488c01a6e8959d-9914d692: fatal: read error: Connection timed out\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-breadcrumb.git /root/.npm/_git-remotes/git-github-com-ansible-angular-breadcrumb-git-6c2b1ad45ad5fbe7adf39af1ef3b294ca8e207a9-c4dd1768: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-angular-breadcrumb-git-6c2b1ad45ad5fbe7adf39af1ef3b294ca8e207a9-c4dd1768'...\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-breadcrumb.git /root/.npm/_git-remotes/git-github-com-ansible-angular-breadcrumb-git-6c2b1ad45ad5fbe7adf39af1ef3b294ca8e207a9-c4dd1768: \nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-breadcrumb.git /root/.npm/_git-remotes/git-github-com-ansible-angular-breadcrumb-git-6c2b1ad45ad5fbe7adf39af1ef3b294ca8e207a9-c4dd1768: fatal: read error: Connection timed out\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/nvd3.git /root/.npm/_git-remotes/git-github-com-ansible-nvd3-git-a28bcd494a1df0677be7cf2ebc0578f44eb21102-422814a5: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-nvd3-git-a28bcd494a1df0677be7cf2ebc0578f44eb21102-422814a5'...\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/nvd3.git /root/.npm/_git-remotes/git-github-com-ansible-nvd3-git-a28bcd494a1df0677be7cf2ebc0578f44eb21102-422814a5: \nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/nvd3.git /root/.npm/_git-remotes/git-github-com-ansible-nvd3-git-a28bcd494a1df0677be7cf2ebc0578f44eb21102-422814a5: fatal: read error: Connection timed out\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/lorenzofox3/lrInfiniteScroll.git /root/.npm/_git-remotes/git-github-com-lorenzofox3-lrInfiniteScroll-git-59d348bc5c18f164438d2a30f1fd79b333c3b649-a44206e6: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-lorenzofox3-lrInfiniteScroll-git-59d348bc5c18f164438d2a30f1fd79b333c3b649-a44206e6'...\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/lorenzofox3/lrInfiniteScroll.git /root/.npm/_git-remotes/git-github-com-lorenzofox3-lrInfiniteScroll-git-59d348bc5c18f164438d2a30f1fd79b333c3b649-a44206e6: \nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/lorenzofox3/lrInfiniteScroll.git /root/.npm/_git-remotes/git-github-com-lorenzofox3-lrInfiniteScroll-git-59d348bc5c18f164438d2a30f1fd79b333c3b649-a44206e6: fatal: read error: Connection timed out\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/ngToast.git /root/.npm/_git-remotes/git-github-com-ansible-ngToast-git-fea95bb34d27687e414619b4f72c11735d909f93-93cae3e8: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-ngToast-git-fea95bb34d27687e414619b4f72c11735d909f93-93cae3e8'...\nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/ngToast.git /root/.npm/_git-remotes/git-github-com-ansible-ngToast-git-fea95bb34d27687e414619b4f72c11735d909f93-93cae3e8: \nnpm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/ngToast.git /root/.npm/_git-remotes/git-github-com-ansible-ngToast-git-fea95bb34d27687e414619b4f72c11735d909f93-93cae3e8: fatal: read error: Connection timed out\nnpm ERR! Linux 3.10.0-327.el7.x86_64\nnpm ERR! argv \"/usr/local/bin/node\" \"/usr/local/bin/npm\" \"--unsafe-perm\" \"--prefix\" \"awx/ui\" \"install\" \"awx/ui\"\nnpm ERR! node v6.11.3\nnpm ERR! npm v3.10.10\nnpm ERR! code 128\n\nnpm ERR! Command failed: git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/jkbrzt/rrule.git /root/.npm/_git-remotes/git-github-com-jkbrzt-rrule-git-4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c-f2d4f677\nnpm ERR! fatal: read error: Connection timed out\nnpm ERR! \nnpm ERR! \nnpm ERR! If you need help, you may report this error at:\nnpm ERR! <https://github.com/npm/npm/issues>\n\nnpm ERR! Please include the following file with any support request:\nnpm ERR! /root/awx/npm-debug.log\nmake: *** [awx/ui/.deps_built] Error 1", "stderr_lines": ["npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/jkbrzt/rrule.git /root/.npm/_git-remotes/git-github-com-jkbrzt-rrule-git-4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c-f2d4f677: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-jkbrzt-rrule-git-4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c-f2d4f677'...", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/jkbrzt/rrule.git /root/.npm/_git-remotes/git-github-com-jkbrzt-rrule-git-4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c-f2d4f677: ", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/jkbrzt/rrule.git /root/.npm/_git-remotes/git-github-com-jkbrzt-rrule-git-4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c-f2d4f677: fatal: read error: Connection timed out", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-drag-and-drop-lists.git /root/.npm/_git-remotes/git-github-com-ansible-angular-drag-and-drop-lists-git-4d32654ab7159689a7767b9be8fc85f9812ca5a8-33d66294: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-angular-drag-and-drop-lists-git-4d32654ab7159689a7767b9be8fc85f9812ca5a8-33d66294'...", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-drag-and-drop-lists.git /root/.npm/_git-remotes/git-github-com-ansible-angular-drag-and-drop-lists-git-4d32654ab7159689a7767b9be8fc85f9812ca5a8-33d66294: ", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-drag-and-drop-lists.git /root/.npm/_git-remotes/git-github-com-ansible-angular-drag-and-drop-lists-git-4d32654ab7159689a7767b9be8fc85f9812ca5a8-33d66294: fatal: read error: Connection timed out", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/timezone-js.git /root/.npm/_git-remotes/git-github-com-ansible-timezone-js-git-6937de14ce0c193961538bb5b3b12b7ef62a358f-d653e9e1: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-timezone-js-git-6937de14ce0c193961538bb5b3b12b7ef62a358f-d653e9e1'...", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/timezone-js.git /root/.npm/_git-remotes/git-github-com-ansible-timezone-js-git-6937de14ce0c193961538bb5b3b12b7ef62a358f-d653e9e1: ", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/timezone-js.git /root/.npm/_git-remotes/git-github-com-ansible-timezone-js-git-6937de14ce0c193961538bb5b3b12b7ef62a358f-d653e9e1: fatal: read error: Connection timed out", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-codemirror.git /root/.npm/_git-remotes/git-github-com-ansible-angular-codemirror-git-75c3a2d0ccdf2e4c836fab7d7617d5db6c585c1b-799d0573: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-angular-codemirror-git-75c3a2d0ccdf2e4c836fab7d7617d5db6c585c1b-799d0573'...", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-codemirror.git /root/.npm/_git-remotes/git-github-com-ansible-angular-codemirror-git-75c3a2d0ccdf2e4c836fab7d7617d5db6c585c1b-799d0573: ", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-codemirror.git /root/.npm/_git-remotes/git-github-com-ansible-angular-codemirror-git-75c3a2d0ccdf2e4c836fab7d7617d5db6c585c1b-799d0573: fatal: read error: Connection timed out", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-tz-extensions.git /root/.npm/_git-remotes/git-github-com-ansible-angular-tz-extensions-git-33caaa9ccf5dfe29a95962c17c3c9e6b9775be35-a87177b8: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-angular-tz-extensions-git-33caaa9ccf5dfe29a95962c17c3c9e6b9775be35-a87177b8'...", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-tz-extensions.git /root/.npm/_git-remotes/git-github-com-ansible-angular-tz-extensions-git-33caaa9ccf5dfe29a95962c17c3c9e6b9775be35-a87177b8: ", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-tz-extensions.git /root/.npm/_git-remotes/git-github-com-ansible-angular-tz-extensions-git-33caaa9ccf5dfe29a95962c17c3c9e6b9775be35-a87177b8: fatal: read error: Connection timed out", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-scheduler.git /root/.npm/_git-remotes/git-github-com-ansible-angular-scheduler-git-9f2893a54c758b05bd6afce897488c01a6e8959d-9914d692: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-angular-scheduler-git-9f2893a54c758b05bd6afce897488c01a6e8959d-9914d692'...", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-scheduler.git /root/.npm/_git-remotes/git-github-com-ansible-angular-scheduler-git-9f2893a54c758b05bd6afce897488c01a6e8959d-9914d692: ", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-scheduler.git /root/.npm/_git-remotes/git-github-com-ansible-angular-scheduler-git-9f2893a54c758b05bd6afce897488c01a6e8959d-9914d692: fatal: read error: Connection timed out", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-breadcrumb.git /root/.npm/_git-remotes/git-github-com-ansible-angular-breadcrumb-git-6c2b1ad45ad5fbe7adf39af1ef3b294ca8e207a9-c4dd1768: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-angular-breadcrumb-git-6c2b1ad45ad5fbe7adf39af1ef3b294ca8e207a9-c4dd1768'...", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-breadcrumb.git /root/.npm/_git-remotes/git-github-com-ansible-angular-breadcrumb-git-6c2b1ad45ad5fbe7adf39af1ef3b294ca8e207a9-c4dd1768: ", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/angular-breadcrumb.git /root/.npm/_git-remotes/git-github-com-ansible-angular-breadcrumb-git-6c2b1ad45ad5fbe7adf39af1ef3b294ca8e207a9-c4dd1768: fatal: read error: Connection timed out", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/nvd3.git /root/.npm/_git-remotes/git-github-com-ansible-nvd3-git-a28bcd494a1df0677be7cf2ebc0578f44eb21102-422814a5: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-nvd3-git-a28bcd494a1df0677be7cf2ebc0578f44eb21102-422814a5'...", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/nvd3.git /root/.npm/_git-remotes/git-github-com-ansible-nvd3-git-a28bcd494a1df0677be7cf2ebc0578f44eb21102-422814a5: ", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/nvd3.git /root/.npm/_git-remotes/git-github-com-ansible-nvd3-git-a28bcd494a1df0677be7cf2ebc0578f44eb21102-422814a5: fatal: read error: Connection timed out", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/lorenzofox3/lrInfiniteScroll.git /root/.npm/_git-remotes/git-github-com-lorenzofox3-lrInfiniteScroll-git-59d348bc5c18f164438d2a30f1fd79b333c3b649-a44206e6: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-lorenzofox3-lrInfiniteScroll-git-59d348bc5c18f164438d2a30f1fd79b333c3b649-a44206e6'...", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/lorenzofox3/lrInfiniteScroll.git /root/.npm/_git-remotes/git-github-com-lorenzofox3-lrInfiniteScroll-git-59d348bc5c18f164438d2a30f1fd79b333c3b649-a44206e6: ", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/lorenzofox3/lrInfiniteScroll.git /root/.npm/_git-remotes/git-github-com-lorenzofox3-lrInfiniteScroll-git-59d348bc5c18f164438d2a30f1fd79b333c3b649-a44206e6: fatal: read error: Connection timed out", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/ngToast.git /root/.npm/_git-remotes/git-github-com-ansible-ngToast-git-fea95bb34d27687e414619b4f72c11735d909f93-93cae3e8: Cloning into bare repository '/root/.npm/_git-remotes/git-github-com-ansible-ngToast-git-fea95bb34d27687e414619b4f72c11735d909f93-93cae3e8'...", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/ngToast.git /root/.npm/_git-remotes/git-github-com-ansible-ngToast-git-fea95bb34d27687e414619b4f72c11735d909f93-93cae3e8: ", "npm ERR! git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/ansible/ngToast.git /root/.npm/_git-remotes/git-github-com-ansible-ngToast-git-fea95bb34d27687e414619b4f72c11735d909f93-93cae3e8: fatal: read error: Connection timed out", "npm ERR! Linux 3.10.0-327.el7.x86_64", "npm ERR! argv \"/usr/local/bin/node\" \"/usr/local/bin/npm\" \"--unsafe-perm\" \"--prefix\" \"awx/ui\" \"install\" \"awx/ui\"", "npm ERR! node v6.11.3", "npm ERR! npm v3.10.10", "npm ERR! code 128", "", "npm ERR! Command failed: git clone --template=/root/.npm/_git-remotes/_templates --mirror git://github.com/jkbrzt/rrule.git /root/.npm/_git-remotes/git-github-com-jkbrzt-rrule-git-4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c-f2d4f677", "npm ERR! fatal: read error: Connection timed out", "npm ERR! ", "npm ERR! ", "npm ERR! If you need help, you may report this error at:", "npm ERR! <https://github.com/npm/npm/issues>", "", "npm ERR! Please include the following file with any support request:", "npm ERR! /root/awx/npm-debug.log", "make: *** [awx/ui/.deps_built] Error 1"], "stdout": "npm --unsafe-perm --prefix awx/ui install awx/ui", "stdout_lines": ["npm --unsafe-perm --prefix awx/ui install awx/ui"]}

Configure and deploy ansibullbot for ansible/awx. (AWXbot)

Summary

The awx project will be using ansible/ansibullbot to help triage and manage issues and pull requests. We will initially deploy a very limited subset of the bot that is currently being used over on ansible/ansible and slowly extend it to meet the needs of awx.

Tasks

  • Configure and deploy ansibullbot for the AWX repo.
  • Update CONTRIBUTING.md to outline the AWXbot expected behavior.
  • Verify AWXbot behavior and deploy against live GH Issues/PRs list.

Feature: Full podification/dynamic clustering

AWX Feature Spec - Podification w/dynamic clustering

User Persona

AWX administrator

Usage Cases

AWX has a container-based deployment system. However, this system does not
currently support joining clusters and instance groups, and there is not an
isolated node container OOTB.

AWX should be able to be spun up as a pod that automatically joins the
proper cluster and groups, usable for scale-out at runtime.

This requires:

  • automatic joining of a cluster with minimal or no state encoded in the runtime container
  • run-time creation of instance groups without cluster downtime
  • isolated node containers that can be deployed wherever
  • probably other things

Supported targets:

  • OpenShift
  • raw Kubernetes
  • possibly others as time/patching permits

API Considerations

Lots

UI/UX Considerations

The cluster view in AWX should allow for the dynamic creation and assigning
of instance groups via whatever way the API exposes it.

Docs

QA Suggestions

Notes

Updates/Changelog
2017-09-08: initial version

Translating the project

Summary

I noticed in the CONTRIBUTING.md mentioning translating. Is that something that is going to be done using PR's? or a external system?

Fail to start build

I installed all Prerequisites, and then try to your follow installation

Ansible
gettext package for your platform (See Installing gettext)
Docker
docker-py Python module
Node 6.x LTS version
NPM 3.x LTS

...
Start the build

If you are not pushing images to a Docker registry, start the build by running the following:

Set the working director to installer

$ cd installer

Run the Ansible playbook

$ ansible-playbook -i inventory install.yml
...

after run the ansible playbook,
I face this screen(+with error message)
It just seems like SSL error or something relative

when I start docker only,
docker makes images, containers good.

...
...

TASK [image_build : Clean distribution] ***************************************************************************************************************************************
changed: [localhost -> localhost]

TASK [image_build : Build AWX distribution] ***********************************************************************************************************************************

fatal: [localhost -> localhost]: FAILED! => {"changed": true, "cmd": "make sdist", "delta": "0:05:24.711488", "end": "2017-09-08 15:46:01.046463", "failed": true, "rc": 2, "start": "2017-09-08 15:40:36.334975", "stderr": "npm ERR! fetch failed https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz\nnpm WARN retry will retry, error on last attempt: Error: tunneling socket could not be established, cause=write EPROTO 140373632497472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:797:\nnpm WARN retry \nnpm ERR! fetch failed https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz\nnpm WARN retry will retry, error on last attempt: Error: tunneling socket could not be established, cause=write EPROTO 140373632497472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:797:\nnpm WARN retry \nnpm ERR! fetch failed https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz\nnpm WARN retry will retry, error on last attempt: Error: tunneling socket could not be established, cause=write EPROTO 140373632497472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:797:\nnpm WARN retry \nnpm ERR! fetch failed https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz\nnpm WARN retry will retry, error on last attempt: Error: tunneling socket could not be established, cause=write EPROTO 140373632497472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:797:\nnpm WARN retry \nnpm ERR! fetch failed https://registry.npmjs.org/ws/-/ws-1.1.1.tgz\nnpm WARN retry will retry, error on last attempt: Error: tunneling socket could not be established, cause=write EPROTO 140373632497472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:797:\nnpm WARN retry \nnpm ERR! fetch failed https://registry.npmjs.org/write/-/write-0.2.1.tgz\nnpm WARN retry will retry, error on last attempt: Error: tunneling socket could not be established, cause=write EPROTO 140373632497472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:797:\nnpm WARN retry ........

please, give me how to solve this problem...

Separate vault credential from machine credential

Summary

Separate vault credential from machine credential

Environment

  • AWX version: Any
  • Ansible version: Any

It would be nice to have the vault credential to be defined separately from the machine credential. This would allow separate vault credentials to be created in Ansible Tower, and then projects or job templates would be able to specify which vault credential to use.

AWX Inventory - Satellite 6

Summary

Unable to import inventory from Satellite 6

Environment

  • AWX version: devel
  • Ansible version: 2.3.1
  • Operating System: RHEL 7.3

Steps To Reproduce:

Attempt to add a Satellite 6 inventory source.

Expected Results:

AWX should import hosts from Satellite.

Actual Results:

2017-09-08 09:30:12,250 INFO awx.main.commands.inventory_import Updating inventory 2: UNIX
2017-09-08 09:30:12,265 INFO awx.main.commands.inventory_import Reading Ansible inventory source: /usr/lib/python2.7/site-packages/awx/plugins/inventory/foreman.py

The task hangs at this stage, previously I had a bunch of stuff in here about investigating this on the host however I wasn't doing so within the docker container so all of my investigation was useless. :)

That being said, the satellite import still hangs however I'll continue investigating from within the container after the weekend and hopefully get to the bottom of it.

Versioning strategy for AWX vs. Tower?

Summary

Using the Fedora:Red Hat Enterprise Linux analogy mentioned in the AWX FAQ, versioning seems like it will not (according to the response in #31) be 1:1 between AWX and Tower.

So, Fedora can release 23, 24, 25, 26, etc. while Red Hat stays on 7, then eventually 8.

In a similar way, AWX can go 1.0.0, 1.1.0, 2.0.0, etc. while Tower is following it's own separate release cycle/tagging convention.

However, there are some bits of code in the AWX codebase that currently refer to Tower's versioning scheme, e.g.

awx/awx/api/generics.py

Lines 179 to 190 in bfea00f

'new_in_13': getattr(self, 'new_in_13', False),
'new_in_14': getattr(self, 'new_in_14', False),
'new_in_145': getattr(self, 'new_in_145', False),
'new_in_148': getattr(self, 'new_in_148', False),
'new_in_200': getattr(self, 'new_in_200', False),
'new_in_210': getattr(self, 'new_in_210', False),
'new_in_220': getattr(self, 'new_in_220', False),
'new_in_230': getattr(self, 'new_in_230', False),
'new_in_240': getattr(self, 'new_in_240', False),
'new_in_300': getattr(self, 'new_in_300', False),
'new_in_310': getattr(self, 'new_in_310', False),
'new_in_320': getattr(self, 'new_in_320', False),

Is there any way we could abstract out these Tower-version-specific things in the codebase?

Environment

N/A

Steps To Reproduce:

N/A

Expected Results:

N/A

Actual Results:

N/A

Additional Information:

N/A

Install failed on Build base web image

Summary

All prerequisites installed, yum works normally behind proxy all env proxy variables has been set correctly (os, yum, npm, docker). Though installation failed on:

TASK [image_build : Build base web image]

Environment

  • Ansible version: 2.3.1.0
  • Operating System: centos 7.3
  • npm: 3.10.10
  • node: 6.11.1

Error:

TASK [image_build : Build base web image] ***************************************************************
fatal: [localhost -> localhost]: FAILED! => {
"changed": false,
"failed": true,
"msg": "Error building awx_web - code: 1, message: The command '/bin/sh -c yum -y install epel-release && yum -y localinstall http://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm && yum -y update && yum -y install ansible git curl python-psycopg2 python-pip python-setuptools libselinux-python setools-libs yum-utils sudo acl make postgresql-devel nginx python-psutil libxml2-devel libxslt-devel libstdc++.so.6 gcc cyrus-sasl-devel cyrus-sasl openldap-devel libffi-devel python-pip xmlsec1-devel swig krb5-devel xmlsec1-openssl xmlsec1 xmlsec1-openssl-devel libtool-ltdl-devel bubblewrap gcc-c++ python-devel && pip install virtualenv supervisor && VENV_BASE=/var/lib/awx/venv make requirements_ansible && VENV_BASE=/var/lib/awx/venv make requirements_awx && yum -y remove gcc postgresql-devel libxml2-devel libxslt-devel cyrus-sasl-devel openldap-devel xmlsec1-devel krb5-devel xmlsec1-openssl-devel libtool-ltdl-devel gcc-c++ python-devel && yum -y clean all && rm -rf /root/.cache' returned a non-zero code: 1, logs: [u'Step 1/31 : FROM centos:7\n', u' ---> 328edcd84f1b\n', u'Step 2/31 : USER root\n', u' ---> Using cache\n', u' ---> 2106f52732ad\n', u'Step 3/31 : ADD https://github.com/krallin/tini/releases/download/v0.14.0/tini /tini\n', u'\n', u' ---> Using cache\n', u' ---> 7ff284c81c77\n', u'Step 4/31 : RUN chmod +x /tini\n', u' ---> Using cache\n', u' ---> 142c92729ca8\n', u'Step 5/31 : ADD Makefile /tmp/Makefile\n', u' ---> Using cache\n', u' ---> 10bab565dd05\n', u'Step 6/31 : RUN mkdir /tmp/requirements\n', u' ---> Using cache\n', u' ---> 8fba8325ca46\n', u'Step 7/31 : ADD requirements/requirements_ansible.txt requirements/requirements_ansible_uninstall.txt requirements/requirements_ansible_git.txt requirements/requirements.txt requirements/requirements_tower_uninstall.txt requirements/requirements_git.txt /tmp/requirements/\n', u' ---> Using cache\n', u' ---> 81a14f198012\n', u'Step 8/31 : WORKDIR /tmp\n', u' ---> Using cache\n', u' ---> 81e98fa58646\n', u'Step 9/31 : RUN mkdir -p /var/lib/awx/public/static\n', u' ---> Using cache\n', u' ---> d8d6dcea5339\n', u'Step 10/31 : RUN chgrp -Rf root /var/lib/awx && chmod -Rf g+w /var/lib/awx\n', u' ---> Using cache\n', u' ---> c24a484eb552\n', u'Step 11/31 : RUN yum -y install epel-release && yum -y localinstall http://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm && yum -y update && yum -y install ansible git curl python-psycopg2 python-pip python-setuptools libselinux-python setools-libs yum-utils sudo acl make postgresql-devel nginx python-psutil libxml2-devel libxslt-devel libstdc++.so.6 gcc cyrus-sasl-devel cyrus-sasl openldap-devel libffi-devel python-pip xmlsec1-devel swig krb5-devel xmlsec1-openssl xmlsec1 xmlsec1-openssl-devel libtool-ltdl-devel bubblewrap gcc-c++ python-devel && pip install virtualenv supervisor && VENV_BASE=/var/lib/awx/venv make requirements_ansible && VENV_BASE=/var/lib/awx/venv make requirements_awx && yum -y remove gcc postgresql-devel libxml2-devel libxslt-devel cyrus-sasl-devel openldap-devel xmlsec1-devel krb5-devel xmlsec1-openssl-devel libtool-ltdl-devel gcc-c++ python-devel && yum -y clean all && rm -rf /root/.cache\n', u' ---> Running in 0fdbb8298efb\n', u'Loaded plugins: fastestmirror, ovl\n', u'\x1b[91m\n\n One of the configured repositories failed (Unknown),\n and yum doesn\'t have enough cached data to continue. At this point the only\n safe thing yum can do is fail. There are a few ways to work "fix" this:\n\n 1. Contact the upstream for the repository and get them to fix the problem.\n\n 2. Reconfigure the baseurl/etc. for the repository, to point to a working\n upstream. This is most often useful if you are using a newer\n distribution release than is supported by the repository (and the\n packages for the previous distribution release still work).\n\n 3. Run the command with the repository temporarily disabled\n yum --disablerepo= ...\n\n 4. Disable the repository permanently, so yum won\'t use it by default. Yum\n will then just ignore the repository until you permanently enable it\n again or use --enablerepo for temporary usage:\n\n yum-config-manager --disable \n or\n subscription-manager repos --disable=\n\n 5. Configure the failing repository to be skipped, if it is unavailable.\n Note that yum will try to contact the repo. when it runs most commands,\n so will have to try and fail each time (and thus. yum will be be much\n slower). If it is a very temporary problem though, this is often a nice\n compromise:\n\n yum-config-manager --save --setopt=.skip_if_unavailable=true\n\nCannot find a valid baseurl for repo: base/7/x86_64\n\x1b[0m', u'Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=container error was\n14: curl#7 - "Failed to connect to 2607:f8f8:700:12::10: Network is unreachable"\n', u'Removing intermediate container 0fdbb8298efb\\n']"}

Additional Information:

yum is working correctly I tried to install all of the packages of the error without any problem.
Is there anything else I am missing ?

Support multiple Ansible versions, per playbook, user or group

SUMMARY

With another major version on the horizon it's going to be essential to be able to select the Ansible version to work with, so you can migrate playbooks, users or groups on your own schedule, rather than a big bang upgrade.

Since Ansible AWX is already using virtualenvs, it shouldn't be that hard to hook into this to support different versions.

ISSUE TYPE
  • Feature Idea

Gitlab (self-hosted) SSO

Summary

AWX offers Github & Github Enterprise authentication, however I would be able to connect with other OAuth2 system like GitLab (Gitlab.com and self-hosted instances).

You can:

  1. Add Gitlab.com and self-hosted gitlab instances but further request for others systems can comes in futur
  2. Maybe create a generic OAuth2 auth that can work with any OAuth2 base auth external system

Allow configurable requestedAuthnContext to allow two-factor authentication in SAML

Summary

I have a client that requires two-factor authentication. This is one of the features that the SAML service provides. However, Ansible Tower (AWX) (and, more specifically, the OneLogin SAML authentication library) defaults to setting the "AuthnContext" to "PasswordProtectedTransport" (password authentication). It is required for that variable to not be enforced. Two-factor authentication cannot be used and there is no way to override this in the AWX GUI or CLI.

A temporary workaround is to edit this file [ /var/lib/awx/venv/tower/lib/python2.7/site-packages/onelogin/saml2/settings.py ] and set the "requestedAuthnContext" variable equal to False (changed from True).

self.__security.setdefault('requestedAuthnContext', False)

By disabling this, the SAML service can then correctly enforce two-factor authentication.

The correct way to override this variable is to use a "settings.json" file as shown in this source file:

https://github.com/onelogin/python-saml/blob/v2.2.3/src/onelogin/saml2/settings.py#L227

The override file should contain at least this to ensure SAML two-factor authentication can work (after "flipping a switch" in the GUI or CLI to enable two-factor auth for SAML):

{
    "security": {
        "requestedAuthnContext": false
    }
}

It would be ideal for AWX to create and manage this configuration file.

Environment

  • Ansible Tower version: 3.1.4
  • Ansible version: 2.3.2.0
  • Operating System: RHEL 7.4
  • Web Browser: Firefox and Chrome

Steps To Reproduce:

Setup a SAML server to use for authentication into AWX. Then attempt to force two-factor authentication. It will not work as only passwords are a valid authentication mechanism for SAML currently.

Expected Results:

SAML should support two-factor authentication in AWX.

Actual Results:

SAML can only be used for "one-factor" password authentication in AWX.

Additional Information:

This unrelated issue illustrates a real-world example of what a more complete settings.json file should look like for the OneLogin's SAML Python library:

SAML-Toolkits/python-saml#101

A completed settings.json should not be required.

Error during SCM Update - getpwuid(): uid not found: 1000

Summary

I've performed an installation of AWX on OpenShift (specifically using minishift w/CDK & DevSuite) following the installation guide. I am able to successfully login, add credentials, create projects and navigation seems to work properly.

However, when I attempt to update the SCM for a project, it fails with an error about uid 1000 not found.

I've not tried any other tasks -- primarily because all of my playbooks, inventory scripts and other useful bits are in my SCM.

Environment

  • AWX version: 1.0.0.286
  • Ansible version: 2.3.1.0-1
  • Operating System: CentOS Linux release 7.3.1611 (Core)
  • Web Browser: Chrome 60.0.3112.113 (Official Build) (64-bit)

Steps To Reproduce:

  • Perform install of AWX on OpenShift
  • Add Credentials
  • Add Project and SCM
  • Try to update SCM

Expected Results:

I would expect the project to be checked out properly, however, it is not.

Actual Results:

Using /etc/ansible/ansible.cfg as config file

PLAY [all] *********************************************************************

TASK [delete project directory before update] **********************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: KeyError: 'getpwuid(): uid not found: 1000'
fatal: [localhost]: FAILED! => {"failed": true, "msg": "Unexpected failure during module execution.", "stdout": ""}

PLAY RECAP *********************************************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=1   

Additional Information:

Error doing install - Makefile:520: recipe for target 'dist/awx-1.0.0.280.tar.gz'

Creating this issue if others end up in the same situation.

Running this on Debian 8 (jessie)

When running the install playbook, when it hit this task: image_build : Build AWX distribution
I was getting this error:

Makefile:520: recipe for target 'dist/awx-1.0.0.280.tar.gz' failed"]}

and if i ran: make sdist
it would display:

.....
File "/usr/local/lib/python2.7/dist-packages/docutils/utils/init.py", line 20, in
import docutils.io
File "/usr/local/lib/python2.7/dist-packages/docutils/io.py", line 18, in
from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput
File "/usr/local/lib/python2.7/dist-packages/docutils/utils/error_reporting.py", line 60, in
codecs.lookup(locale_encoding or '') # None -> ''
NameError: name 'locale_encoding' is not defined
Makefile:520: recipe for target 'dist/awx-1.0.0.280.tar.gz' failed
make: *** [dist/awx-1.0.0.280.tar.gz] Error 1

Solved it with:
export LC_ALL="en_US.UTF-8"
(or whatever locale you're running)

Then re-ran the ansible-playbook command, and it worked

Build Step fails without Docker started

- name: Build base web image

Create PR to ensure that docker is running otherwise ansible fails with

TASK [image_build : Build base web image] **************************************************************************************************
fatal: [localhost -> localhost]: FAILED! => {"changed": false, "failed": true, "msg": "Error connecting: Error while fetching server API version: ('Connection aborted.', error(2, 'No such file or directory'))"}

Provide prebuilt docker images (install/build process is a pain)

Summary

I can't build on fresh image of ubuntu 16.04 with node 6.x. Could you provide prebuilt docker images? Getting error like below:


TASK [image_build : Build AWX distribution] ****************************************************************************************************************************
fatal: [localhost -> localhost]: FAILED! => {"changed": true, "cmd": "make sdist", "delta": "0:02:22.501405", "end": "2017-09-07 19:45:22.066940", "failed": true, "msg": "non-zero return code", "rc": 2, "start": "2017-09-07 19:42:59.565535", "stderr": "npm WARN prefer global [email protected] should be installed with -g\n../src/contextify.cc: In static member function 'static v8::Local<v8::Context> ContextWrap::createV8Context(v8::Local<v8::Object>)':\n../src/contextify.cc:131:68: warning: 'v8::Local<v8::Object> v8::Function::NewInstance() const' is deprecated: Use maybe version [-Wdeprecated-declarations]\n         Local<Object> wrapper = Nan::New(constructor)->NewInstance();\n                                                                    ^\nIn file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,\n                 from /root/.node-gyp/6.11.3/include/node/node.h:42,\n                 from ../src/contextify.cc:1:\n/root/.node-gyp/6.11.3/include/node/v8.h:3276:52: note: declared here\n   V8_DEPRECATED(\"Use maybe version\", Local<Object> NewInstance() const);\n                                                    ^\n/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'\n   declarator __attribute__((deprecated(message)))\n   ^\n../src/contextify.cc:151:72: warning: 'void v8::ObjectTemplate::SetAccessCheckCallbacks(v8::NamedSecurityCallback, v8::IndexedSecurityCallback, v8::Local<v8::Value>)' is deprecated: Use SetAccessCheckCallback instead [-Wdeprecated-declarations]\n                                        GlobalPropertyIndexedAccessCheck);\n                                                                        ^\nIn file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,\n                 from /root/.node-gyp/6.11.3/include/node/node.h:42,\n                 from ../src/contextify.cc:1:\n/root/.node-gyp/6.11.3/include/node/v8.h:4805:12: note: declared here\n       void SetAccessCheckCallbacks(NamedSecurityCallback named_handler,\n            ^\n/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'\n   declarator __attribute__((deprecated(message)))\n   ^\n../src/contextify.cc: In static member function 'static void ContextWrap::GlobalPropertyGetter(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Value>&)':\n../src/contextify.cc:182:80: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]\n         Local<Value> rv = Nan::New(ctx->sandbox)->GetRealNamedProperty(property);\n                                                                                ^\nIn file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,\n                 from /root/.node-gyp/6.11.3/include/node/node.h:42,\n                 from ../src/contextify.cc:1:\n/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here\n                 Local<Value> GetRealNamedProperty(Local<String> key));\n                              ^\n/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'\n   declarator __attribute__((deprecated(message)))\n   ^\n../src/contextify.cc: In static member function 'static void ContextWrap::GlobalPropertyQuery(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Integer>&)':\n../src/contextify.cc:209:67: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]\n         if (!Nan::New(ctx->sandbox)->GetRealNamedProperty(property).IsEmpty() ||\n                                                                   ^\nIn file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,\n                 from /root/.node-gyp/6.11.3/include/node/node.h:42,\n                 from ../src/contextify.cc:1:\n/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here\n                 Local<Value> GetRealNamedProperty(Local<String> key));\n                              ^\n/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'\n   declarator __attribute__((deprecated(message)))\n   ^\n../src/contextify.cc:210:71: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]\n             !Nan::New(ctx->proxyGlobal)->GetRealNamedProperty(property).IsEmpty()) {\n                                                                       ^\nIn file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,\n                 from /root/.node-gyp/6.11.3/include/node/node.h:42,\n                 from ../src/contextify.cc:1:\n/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here\n                 Local<Value> GetRealNamedProperty(Local<String> key));\n                              ^\n/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'\n   declarator __attribute__((deprecated(message)))\n   ^\nnpm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):\nnpm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {\"os\":\"darwin\",\"arch\":\"any\"} (current: {\"os\":\"linux\",\"arch\":\"x64\"})\nnpm WARN [email protected] No license field.\nTraceback (most recent call last):\n  File \"tools/scripts/compilemessages.py\", line 154, in <module>\n    output, errors, status = popen_wrapper(args)\n  File \"tools/scripts/compilemessages.py\", line 44, in popen_wrapper\n    (args[0], strerror)), sys.exc_info()[2])\nException: (<type 'exceptions.StandardError'>, StandardError('Error executing msgfmt: No such file or directory',), <traceback object at 0x7f39bcac6710>)\nmake: *** [.i18n_built] Error 1", "stderr_lines": ["npm WARN prefer global [email protected] should be installed with -g", "../src/contextify.cc: In static member function 'static v8::Local<v8::Context> ContextWrap::createV8Context(v8::Local<v8::Object>)':", "../src/contextify.cc:131:68: warning: 'v8::Local<v8::Object> v8::Function::NewInstance() const' is deprecated: Use maybe version [-Wdeprecated-declarations]", "         Local<Object> wrapper = Nan::New(constructor)->NewInstance();", "                                                                    ^", "In file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,", "                 from /root/.node-gyp/6.11.3/include/node/node.h:42,", "                 from ../src/contextify.cc:1:", "/root/.node-gyp/6.11.3/include/node/v8.h:3276:52: note: declared here", "   V8_DEPRECATED(\"Use maybe version\", Local<Object> NewInstance() const);", "                                                    ^", "/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'", "   declarator __attribute__((deprecated(message)))", "   ^", "../src/contextify.cc:151:72: warning: 'void v8::ObjectTemplate::SetAccessCheckCallbacks(v8::NamedSecurityCallback, v8::IndexedSecurityCallback, v8::Local<v8::Value>)' is deprecated: Use SetAccessCheckCallback instead [-Wdeprecated-declarations]", "                                        GlobalPropertyIndexedAccessCheck);", "                                                                        ^", "In file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,", "                 from /root/.node-gyp/6.11.3/include/node/node.h:42,", "                 from ../src/contextify.cc:1:", "/root/.node-gyp/6.11.3/include/node/v8.h:4805:12: note: declared here", "       void SetAccessCheckCallbacks(NamedSecurityCallback named_handler,", "            ^", "/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'", "   declarator __attribute__((deprecated(message)))", "   ^", "../src/contextify.cc: In static member function 'static void ContextWrap::GlobalPropertyGetter(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Value>&)':", "../src/contextify.cc:182:80: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]", "         Local<Value> rv = Nan::New(ctx->sandbox)->GetRealNamedProperty(property);", "                                                                                ^", "In file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,", "                 from /root/.node-gyp/6.11.3/include/node/node.h:42,", "                 from ../src/contextify.cc:1:", "/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here", "                 Local<Value> GetRealNamedProperty(Local<String> key));", "                              ^", "/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'", "   declarator __attribute__((deprecated(message)))", "   ^", "../src/contextify.cc: In static member function 'static void ContextWrap::GlobalPropertyQuery(v8::Local<v8::String>, const Nan::PropertyCallbackInfo<v8::Integer>&)':", "../src/contextify.cc:209:67: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]", "         if (!Nan::New(ctx->sandbox)->GetRealNamedProperty(property).IsEmpty() ||", "                                                                   ^", "In file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,", "                 from /root/.node-gyp/6.11.3/include/node/node.h:42,", "                 from ../src/contextify.cc:1:", "/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here", "                 Local<Value> GetRealNamedProperty(Local<String> key));", "                              ^", "/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'", "   declarator __attribute__((deprecated(message)))", "   ^", "../src/contextify.cc:210:71: warning: 'v8::Local<v8::Value> v8::Object::GetRealNamedProperty(v8::Local<v8::String>)' is deprecated: Use maybe version [-Wdeprecated-declarations]", "             !Nan::New(ctx->proxyGlobal)->GetRealNamedProperty(property).IsEmpty()) {", "                                                                       ^", "In file included from /root/.node-gyp/6.11.3/include/node/v8.h:25:0,", "                 from /root/.node-gyp/6.11.3/include/node/node.h:42,", "                 from ../src/contextify.cc:1:", "/root/.node-gyp/6.11.3/include/node/v8.h:2923:30: note: declared here", "                 Local<Value> GetRealNamedProperty(Local<String> key));", "                              ^", "/root/.node-gyp/6.11.3/include/node/v8config.h:333:3: note: in definition of macro 'V8_DEPRECATED'", "   declarator __attribute__((deprecated(message)))", "   ^", "npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):", "npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {\"os\":\"darwin\",\"arch\":\"any\"} (current: {\"os\":\"linux\",\"arch\":\"x64\"})", "npm WARN [email protected] No license field.", "Traceback (most recent call last):", "  File \"tools/scripts/compilemessages.py\", line 154, in <module>", "    output, errors, status = popen_wrapper(args)", "  File \"tools/scripts/compilemessages.py\", line 44, in popen_wrapper", "    (args[0], strerror)), sys.exc_info()[2])", "Exception: (<type 'exceptions.StandardError'>, StandardError('Error executing msgfmt: No such file or directory',), <traceback object at 0x7f39bcac6710>)", "make: *** [.i18n_built] Error 1"], "stdout": "npm --unsafe-perm --prefix awx/ui install awx/ui\n\n> [email protected] install /home/awx/awx/ui/node_modules/contextify\n> node-gyp rebuild\n\nmake[1]: Entering directory '/home/awx/awx/ui/node_modules/contextify/build'\n  CXX(target) Release/obj.target/contextify/src/contextify.o\n  SOLINK_MODULE(target) Release/obj.target/contextify.node\n  COPY Release/contextify.node\nmake[1]: Leaving directory '/home/awx/awx/ui/node_modules/contextify/build'\n\n> [email protected] install /home/awx/awx/ui/node_modules/phantomjs-prebuilt\n> node install.js\n\nPhantomJS not found on PATH\nDownloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2\nSaving to /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2\nReceiving...\n\nReceived 22866K total.\nExtracting tar contents (via spawned process)\nRemoving /home/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom\nCopying extracted folder /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1504813508942/phantomjs-2.1.1-linux-x86_64 -> /home/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom\nWriting location.js file\nDone. Phantomjs binary available at /home/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs\n\n> [email protected] install /home/awx/awx/ui/node_modules/wd\n> node scripts/build-browser-scripts\n\n\n> [email protected] postinstall /home/awx/awx/ui/node_modules/sauce-connect-launcher\n> node scripts/install.js || nodejs scripts/install.js\n\[email protected] /home/awx/awx/ui\n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected]  (git://github.com/ansible/angular-breadcrumb.git#6c2b1ad45ad5fbe7adf39af1ef3b294ca8e207a9)\n+-- [email protected]  (git://github.com/ansible/angular-codemirror.git#75c3a2d0ccdf2e4c836fab7d7617d5db6c585c1b)\n| `-- [email protected] \n+-- [email protected] \n+-- [email protected]  (git://github.com/ansible/angular-drag-and-drop-lists.git#4d32654ab7159689a7767b9be8fc85f9812ca5a8)\n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected]  (git://github.com/ansible/angular-scheduler.git#9f2893a54c758b05bd6afce897488c01a6e8959d)\n| `-- [email protected]  (git://github.com/ansible/angular-tz-extensions.git#33caaa9ccf5dfe29a95962c17c3c9e6b9775be35)\n|   +-- [email protected] \n|   `-- [email protected] \n+-- [email protected]  (git://github.com/ansible/angular-tz-extensions.git#33caaa9ccf5dfe29a95962c17c3c9e6b9775be35)\n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| | +-- [email protected] \n| | `-- [email protected] \n| +-- [email protected] \n| | +-- [email protected] \n| | `-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| | +-- [email protected] \n| | `-- [email protected] \n| +-- [email protected] \n| | +-- [email protected] \n| | `-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected]  (git://github.com/lorenzofox3/lrInfiniteScroll.git#59d348bc5c18f164438d2a30f1fd79b333c3b649)\n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected]  (git://github.com/ansible/ngToast.git#fea95bb34d27687e414619b4f72c11735d909f93)\n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected]  (git://github.com/ansible/nvd3.git#a28bcd494a1df0677be7cf2ebc0578f44eb21102)\n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected]  (git://github.com/jkbrzt/rrule.git#4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c)\n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| | `-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected]  (git://github.com/ansible/timezone-js.git#6937de14ce0c193961538bb5b3b12b7ef62a358f)\n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| | `-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| | `-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n+-- [email protected] \n| +-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n| `-- [email protected] \n+-- [email protected] \n+-- [email protected] \n`-- [email protected] \n  `-- [email protected] \n\ntouch awx/ui/.deps_built\nnpm --prefix awx/ui run languages\n\n> [email protected] languages /home/awx/awx/ui\n> grunt nggettext_compile\n\nRunning \"nggettext_compile:all\" (nggettext_compile) task\n\nDone.\n\n\nExecution Time (2017-09-07 19:45:20 UTC-0)\nloading tasks          410ms  ??????????????????????? 58%\nnggettext_compile:all  299ms  ????????????????? 42%\nTotal 709ms\n\npython tools/scripts/compilemessages.py\nprocessing file django.po in /home/awx/awx/locale/en-us/LC_MESSAGES\n\nMakefile:457: recipe for target '.i18n_built' failed", "stdout_lines": ["npm --unsafe-perm --prefix awx/ui install awx/ui", "", "> [email protected] install /home/awx/awx/ui/node_modules/contextify", "> node-gyp rebuild", "", "make[1]: Entering directory '/home/awx/awx/ui/node_modules/contextify/build'", "  CXX(target) Release/obj.target/contextify/src/contextify.o", "  SOLINK_MODULE(target) Release/obj.target/contextify.node", "  COPY Release/contextify.node", "make[1]: Leaving directory '/home/awx/awx/ui/node_modules/contextify/build'", "", "> [email protected] install /home/awx/awx/ui/node_modules/phantomjs-prebuilt", "> node install.js", "", "PhantomJS not found on PATH", "Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2", "Saving to /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2", "Receiving...", "", "Received 22866K total.", "Extracting tar contents (via spawned process)", "Removing /home/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom", "Copying extracted folder /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-1504813508942/phantomjs-2.1.1-linux-x86_64 -> /home/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom", "Writing location.js file", "Done. Phantomjs binary available at /home/awx/awx/ui/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs", "", "> [email protected] install /home/awx/awx/ui/node_modules/wd", "> node scripts/build-browser-scripts", "", "", "> [email protected] postinstall /home/awx/awx/ui/node_modules/sauce-connect-launcher", "> node scripts/install.js || nodejs scripts/install.js", "", "[email protected] /home/awx/awx/ui", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected]  (git://github.com/ansible/angular-breadcrumb.git#6c2b1ad45ad5fbe7adf39af1ef3b294ca8e207a9)", "+-- [email protected]  (git://github.com/ansible/angular-codemirror.git#75c3a2d0ccdf2e4c836fab7d7617d5db6c585c1b)", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected]  (git://github.com/ansible/angular-drag-and-drop-lists.git#4d32654ab7159689a7767b9be8fc85f9812ca5a8)", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected]  (git://github.com/ansible/angular-scheduler.git#9f2893a54c758b05bd6afce897488c01a6e8959d)", "| `-- [email protected]  (git://github.com/ansible/angular-tz-extensions.git#33caaa9ccf5dfe29a95962c17c3c9e6b9775be35)", "|   +-- [email protected] ", "|   `-- [email protected] ", "+-- [email protected]  (git://github.com/ansible/angular-tz-extensions.git#33caaa9ccf5dfe29a95962c17c3c9e6b9775be35)", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| | +-- [email protected] ", "| | `-- [email protected] ", "| +-- [email protected] ", "| | +-- [email protected] ", "| | `-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| | +-- [email protected] ", "| | `-- [email protected] ", "| +-- [email protected] ", "| | +-- [email protected] ", "| | `-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected]  (git://github.com/lorenzofox3/lrInfiniteScroll.git#59d348bc5c18f164438d2a30f1fd79b333c3b649)", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected]  (git://github.com/ansible/ngToast.git#fea95bb34d27687e414619b4f72c11735d909f93)", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected]  (git://github.com/ansible/nvd3.git#a28bcd494a1df0677be7cf2ebc0578f44eb21102)", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected]  (git://github.com/jkbrzt/rrule.git#4ff63b2f8524fd6d5ba6e80db770953b5cd08a0c)", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| | `-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected]  (git://github.com/ansible/timezone-js.git#6937de14ce0c193961538bb5b3b12b7ef62a358f)", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| | `-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| | `-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "| +-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "| `-- [email protected] ", "+-- [email protected] ", "+-- [email protected] ", "`-- [email protected] ", "  `-- [email protected] ", "", "touch awx/ui/.deps_built", "npm --prefix awx/ui run languages", "", "> [email protected] languages /home/awx/awx/ui", "> grunt nggettext_compile", "", "Running \"nggettext_compile:all\" (nggettext_compile) task", "", "Done.", "", "", "Execution Time (2017-09-07 19:45:20 UTC-0)", "loading tasks          410ms  ??????????????????????? 58%", "nggettext_compile:all  299ms  ????????????????? 42%", "Total 709ms", "", "python tools/scripts/compilemessages.py", "processing file django.po in /home/awx/awx/locale/en-us/LC_MESSAGES", "", "Makefile:457: recipe for target '.i18n_built' failed"]}
	to retry, use: --limit @/home/awx/installer/install.retry

PLAY RECAP *************************************************************************************************************************************************************
localhost                  : ok=8    changed=2    unreachable=0    failed=1  

Environment

Wiki link on GH repo non-functional

Just noticed a minor weirdness. The AWX GitHub repo has the Wiki tab showing up, but clicking on it just bounces to the code page.

Probably just something minor needing a setting change. 😄

Installation on Arch Linux fails

Summary

Trying to install AWX locally on Arch Linux. Ansible script fails at the task local_docker : Activate AWX Web Container:

fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "Error starting 
container 9678e6be283aa929a6aac1a7d22cdf95731b10614fd2ecb1673447788e5204f6: 
500 Server Error: Internal Server Error (\"driver failed programming external connectivity 
on endpoint awx_web 
(b48d02b5b6c05f4fd902de292a6e4efbe896daa7b5bba93b6119022f75de5fe5):  (iptables 
failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 80 -j DNAT --to-destination 
172.17.0.5:8052 ! -i docker0: iptables: No chain/target/match by that name.\n (exit 
status 1))\")"}`

Environment

  • AWX version: 1.0.0.288
  • Ansible version: 2.3.2.0
  • Operating System: Arch Linux 64bit
  • Web Browser: Chromium

Steps To Reproduce:

Get Arch Linux, install iptables, docker, AWX requirements, clone Git repo, go to installer folder and launch ansible-playbook -i inventory install.yml.

Expected Results:

Ansible script finishes without any errors.

Actual Results:

Got an error during installation, inserted in Summary.

Additional Information:

  • There exists DOCKER chain in nat and filter tables
  • DOCKER-ISOLATION and DOCKER-USER also exist in filter
  • network interface docker0 exists and is UP
[root@dell installer]# cat /proc/net/ip_tables_targets
CHECKSUM
NFLOG
CONNMARK
MASQUERADE
REJECT
LOG
ERROR

Feature: Expanded notification support

AWX Feature Spec - Expanded notifications

User Persona

Automation user

Usage Cases

There are a variety of ways that notifications could be made more useful for users. Among them:

  • Allow for notification on job start, not just job end
  • Allow for templated notification content with substitutable fields based on job parameters (requires flexible notification size, may be restricted to certain types). This should include use of filters for e.g. timzeone conversion on dates.
  • Users and teams should be able to define their own notifications that can be attached to arbitrary jobs (including at launch time)
  • "User who launched job" should be a selectable destination for an e-mail notification
  • The notification system should notify on assorted AWX/Tower events (license related, ENOSPC, cluster health, etc.) (removed due to new metrics endpoint)

API Considerations

Significant.

UI/UX Considerations

All of this will need to be configurable.

Docs

QA Suggestions

Notes

Updates/Changelog
2017-09-08: Initial version

Footer is blocking items from being visible/actionable in the ui

Summary

Pagniate controls to move on next page and number of items view per page drop down are not visible in Activity Stream.

Branch

Devel

Environment

  • AWX version: 1.0.0.269
  • Ansible version: 2.3.1.0
  • Operating System: Fedora 25
  • Web Browser: Chrome 60 , Firefox 55 64 bit.

Steps To Reproduce:

  • Setup new instance using docker.
  • Open the AWX-Ansible instance on chrome/firefox
  • Click on dashboard.
  • Click on View Activity Stream from top right corner.
  • Scroll down and observe the paginated controls and view per page dropdown.
  • Zoom-out to below 80 %.
  • Observe controls are shows.
  • Then double clik on top of browser to minimize the browser size.
  • Again observer those controls are not visible

Expected Results:

  • Paginated controls and view per page drop down should be visible clearly.

Actual Results:

Controls are getting hide.

Additional Information:

Attached screen captured for more info.

paginate_invisible

paginate_visible

paginate_visible

Not building on Ubuntu 16

Summary

There seems to be an error or a missing dependency when building

Environment

  • Ubuntu 16.LTs

....
u001b[35mTotal 616ms\u001b[39m", "", " \u001b[4mRunning "newer:copy:icons" (newer) task\u001b[24m", "", " \u001b[4mRunning "copy:icons" (copy) task\u001b[24m", " Copied \u001b[36m6\u001b[39m files", "", " \u001b[4mRunning "newer-postrun:copy:icons:1:/home/vmedina/tmp/awx/awx/ui/node_modules/grunt-newer/.cache" (newer-postrun) task\u001b[24m", "", " \u001b[32mDone.\u001b[39m", "", "", " \u001b[4mExecution Time\u001b[24m\u001b[90m (2017-09-08 10:13:41 UTC-4)\u001b[39m", " loading tasks \u001b[34m539ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 86%\u001b[39m", " newer:copy:icons \u001b[34m36ms\u001b[39m \u001b[34m▇▇▇ 6%\u001b[39m", " copy:icons \u001b[34m46ms\u001b[39m \u001b[34m▇▇▇▇ 7%\u001b[39m", " \u001b[35mTotal 627ms\u001b[39m", "", " \u001b[4mRunning "newer:copy:vendor" (newer) task\u001b[24m", "", " \u001b[4mRunning "copy:vendor" (copy) task\u001b[24m", " Copied \u001b[36m32\u001b[39m files", "", " \u001b[4mRunning "newer-postrun:copy:vendor:1:/home/vmedina/tmp/awx/awx/ui/node_modules/grunt-newer/.cache" (newer-postrun) task\u001b[24m", "", " \u001b[32mDone.\u001b[39m", "", "", " \u001b[4mExecution Time\u001b[24m\u001b[90m (2017-09-08 10:13:41 UTC-4)\u001b[39m", " loading tasks \u001b[34m557ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 75%\u001b[39m", " newer:copy:vendor \u001b[34m21ms\u001b[39m \u001b[34m▇▇ 3%\u001b[39m", " copy:vendor \u001b[34m159ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇ 22%\u001b[39m", " \u001b[35mTotal 739ms\u001b[39m", "", " \u001b[4mRunning "newer:copy:assets" (newer) task\u001b[24m", "", " \u001b[4mRunning "copy:assets" (copy) task\u001b[24m", " Created \u001b[36m6\u001b[39m directories, copied \u001b[36m116\u001b[39m files", "", " \u001b[4mRunning "newer-postrun:copy:assets:1:/home/vmedina/tmp/awx/awx/ui/node_modules/grunt-newer/.cache" (newer-postrun) task\u001b[24m", "", " \u001b[32mDone.\u001b[39m", "", "", " \u001b[4mExecution Time\u001b[24m\u001b[90m (2017-09-08 10:13:41 UTC-4)\u001b[39m", " loading tasks \u001b[34m632ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 67%\u001b[39m", " newer:copy:assets \u001b[34m77ms\u001b[39m \u001b[34m▇▇▇▇ 8%\u001b[39m", " copy:assets \u001b[34m233ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇▇ 25%\u001b[39m", " \u001b[35mTotal 944ms\u001b[39m", "", " \u001b[4mRunning "newer:copy:views" (newer) task\u001b[24m", "", " \u001b[4mRunning "copy:views" (copy) task\u001b[24m", " Copied \u001b[36m2\u001b[39m files", "", " \u001b[4mRunning "newer-postrun:copy:views:1:/home/vmedina/tmp/awx/awx/ui/node_modules/grunt-newer/.cache" (newer-postrun) task\u001b[24m", "", " \u001b[32mDone.\u001b[39m", "", "", " \u001b[4mExecution Time\u001b[24m\u001b[90m (2017-09-08 10:13:45 UTC-4)\u001b[39m", " loading tasks \u001b[34m748ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 95%\u001b[39m", " newer:copy:views \u001b[34m29ms\u001b[39m \u001b[34m▇▇ 4%\u001b[39m", " copy:views \u001b[34m8ms\u001b[39m \u001b[34m▇ 1%\u001b[39m", " \u001b[35mTotal 787ms\u001b[39m", "", " \u001b[4mRunning "newer:copy:images" (newer) task\u001b[24m", "", " \u001b[4mRunning "copy:images" (copy) task\u001b[24m", " Copied \u001b[36m27\u001b[39m files", "", " \u001b[4mRunning "newer-postrun:copy:images:1:/home/vmedina/tmp/awx/awx/ui/node_modules/grunt-newer/.cache" (newer-postrun) task\u001b[24m", "", " \u001b[32mDone.\u001b[39m", "", "", " \u001b[4mExecution Time\u001b[24m\u001b[90m (2017-09-08 10:13:45 UTC-4)\u001b[39m", " loading tasks \u001b[34m782ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 82%\u001b[39m", " newer:copy:images \u001b[34m41ms\u001b[39m \u001b[34m▇▇ 4%\u001b[39m", " copy:images \u001b[34m123ms\u001b[39m \u001b[34m▇▇▇▇▇▇ 13%\u001b[39m", " \u001b[35mTotal 954ms\u001b[39m", "", " \u001b[4mRunning "newer:copy:languages" (newer) task\u001b[24m", "", " \u001b[4mRunning "copy:languages" (copy) task\u001b[24m", " Copied \u001b[36m4\u001b[39m files", "", " \u001b[4mRunning "newer-postrun:copy:languages:1:/home/vmedina/tmp/awx/awx/ui/node_modules/grunt-newer/.cache" (newer-postrun) task\u001b[24m", "", " \u001b[32mDone.\u001b[39m", "", "", " \u001b[4mExecution Time\u001b[24m\u001b[90m (2017-09-08 10:13:45 UTC-4)\u001b[39m", " loading tasks \u001b[34m540ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 88%\u001b[39m", " newer:copy:languages \u001b[34m38ms\u001b[39m \u001b[34m▇▇▇ 6%\u001b[39m", " copy:languages \u001b[34m37ms\u001b[39m \u001b[34m▇▇▇ 6%\u001b[39m", " \u001b[35mTotal 617ms\u001b[39m", "", " \u001b[4mRunning "newer:copy:partials" (newer) task\u001b[24m", "", " \u001b[4mRunning "copy:partials" (copy) task\u001b[24m", " Copied \u001b[36m133\u001b[39m files", "", " \u001b[4mRunning "newer-postrun:copy:partials:1:/home/vmedina/tmp/awx/awx/ui/node_modules/grunt-newer/.cache" (newer-postrun) task\u001b[24m", "", " \u001b[32mDone.\u001b[39m", "", "", " \u001b[4mExecution Time\u001b[24m\u001b[90m (2017-09-08 10:13:45 UTC-4)\u001b[39m", " loading tasks \u001b[34m729ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 69%\u001b[39m", " newer:copy:partials \u001b[34m157ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇ 15%\u001b[39m", " copy:partials \u001b[34m166ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇ 16%\u001b[39m", " \u001b[35mTotal 1.1s\u001b[39m", "", " \u001b[4mRunning "newer:copy:config" (newer) task\u001b[24m", " No newer files to process.", "", " \u001b[32mDone.\u001b[39m", "", "", " \u001b[4mExecution Time\u001b[24m\u001b[90m (2017-09-08 10:13:47 UTC-4)\u001b[39m", " loading tasks \u001b[34m253ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 95%\u001b[39m", " newer:copy:config \u001b[34m14ms\u001b[39m \u001b[34m▇▇▇ 5%\u001b[39m", " \u001b[35mTotal 267ms\u001b[39m", "", " \u001b[4mRunning "newer:less:prod" (newer) task\u001b[24m", "", " \u001b[4mRunning "less:prod" (less) task\u001b[24m", " \u001b[32m>> \u001b[39m1 stylesheet created.", "", " \u001b[4mRunning "newer-postrun:less:prod:1:/home/vmedina/tmp/awx/awx/ui/node_modules/grunt-newer/.cache" (newer-postrun) task\u001b[24m", "", " \u001b[32mDone.\u001b[39m", "", "", " \u001b[4mExecution Time\u001b[24m\u001b[90m (2017-09-08 10:13:47 UTC-4)\u001b[39m", " loading tasks \u001b[34m236ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇▇ 22%\u001b[39m", " less:prod \u001b[34m846ms\u001b[39m \u001b[34m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 77%\u001b[39m", " \u001b[35mTotal 1.1s\u001b[39m", "", "Running "webpack:prod" (webpack) task", "\b\b\b\b\b\b\b\b\b\b\b\b 0% compile\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 10% 0/1 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 70% 1/1 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 1/2 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 30% 1/3 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 1/4 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 22% 1/5 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 20% 1/6 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 18% 1/7 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 17% 1/8 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 16% 1/9 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 16% 1/10 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 15% 1/11 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 15% 1/12 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 14% 1/13 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 14% 1/14 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 14% 1/15 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 13% 1/16 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 13% 1/17 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 13% 1/18 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 13% 1/19 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 13% 1/20 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 12% 1/21 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 12% 1/22 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 12% 1/23 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 12% 1/24 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 12% 1/25 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 12% 1/26 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 12% 1/27 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 12% 1/28 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 12% 1/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 14% 2/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 16% 3/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 18% 4/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 20% 5/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 22% 6/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 7/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 8/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 28% 9/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 30% 10/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 32% 11/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 12/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 13/29 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 13/30 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 13/31 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 13/32 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 33% 13/33 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 32% 13/34 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 14/34 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 15/34 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 15/35 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 16/35 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 17/35 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 17/36 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 18/36 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 18/37 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 19/37 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 20/37 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 21/37 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 22/37 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 23/37 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 23/38 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 23/39 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 24/39 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 24/40 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 25/40 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 26/40 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 27/40 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 28/40 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 29/40 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 29/41 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 29/42 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 30/42 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 30/43 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 30/44 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 30/45 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 30/46 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 30/47 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 30/48 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 30/49 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 30/50 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 30/51 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 30/52 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 30/53 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 30/54 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 31/54 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 32/54 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 33/54 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 34/54 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 35/54 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 36/54 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 37/54 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 38/54 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 38/55 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 38/56 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 39/56 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 40/56 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 41/56 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 41/57 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 41/58 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 41/59 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 41/60 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 41/61 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 41/62 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 41/63 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 41/64 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 41/65 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 41/66 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 41/67 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 41/68 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 41/69 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 41/70 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 41/71 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 41/72 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 41/73 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 41/74 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 41/75 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 41/76 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 41/77 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 41/78 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 41/79 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 41/80 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 41/81 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 41/82 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 41/83 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 41/84 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 41/85 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 41/86 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 41/87 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 41/88 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 41/89 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 41/90 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 41/91 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 41/92 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 41/93 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 41/94 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 41/95 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 41/96 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 41/97 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 41/98 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 41/99 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 41/100 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 41/101 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 41/102 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 33% 41/103 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 33% 41/104 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 33% 41/105 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 33% 41/106 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 32% 41/107 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 32% 41/108 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 32% 41/109 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 32% 41/110 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 32% 41/111 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 31% 41/112 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 31% 41/113 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 31% 41/114 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 31% 41/115 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 31% 41/116 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 31% 41/117 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 30% 41/118 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 30% 41/119 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 30% 41/120 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 30% 41/121 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 30% 41/122 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 30% 41/123 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 29% 41/124 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 29% 41/125 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 29% 41/126 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 29% 41/127 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 29% 41/128 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 29% 41/129 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 28% 41/130 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 28% 41/131 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 28% 41/132 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 28% 41/133 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 28% 41/134 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 28% 41/135 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 28% 41/136 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 41/137 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 41/138 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 41/139 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 41/140 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 41/141 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 41/142 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 41/143 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 41/144 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 41/145 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 41/146 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 41/147 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 41/148 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 41/149 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 41/150 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 41/151 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 41/152 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 41/153 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 41/154 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 41/155 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 41/156 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 41/157 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 41/158 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 41/159 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 41/160 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 41/161 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 41/162 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 41/163 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 41/164 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 41/165 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 41/166 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 41/167 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 41/168 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 41/169 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 41/170 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 41/171 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 41/172 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 41/173 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 41/174 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 41/175 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 23% 41/176 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 42/176 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 42/177 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 42/178 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 42/179 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 42/180 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 23% 42/181 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 23% 42/182 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 23% 42/183 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 23% 42/184 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 23% 42/185 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 23% 42/186 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 23% 42/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 23% 43/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 44/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 45/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 24% 46/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 47/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 48/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 25% 49/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 50/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 51/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 26% 52/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 53/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 54/187 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 54/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 55/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 27% 56/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 28% 57/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 28% 58/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 28% 59/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 29% 60/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 29% 61/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 29% 62/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 30% 63/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 30% 64/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 30% 65/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 31% 66/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 31% 67/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 31% 68/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 32% 69/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 32% 70/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 32% 71/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 32% 72/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 33% 73/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 33% 74/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 33% 75/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 76/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 77/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 78/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 79/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 80/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 81/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 82/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 83/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 84/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 85/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 86/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 87/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 88/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 89/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 90/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 91/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 92/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 93/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 94/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 95/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 96/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 97/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 98/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 99/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 100/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 101/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 102/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 103/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 104/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 105/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 106/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 107/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 108/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 109/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 110/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 111/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 112/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 113/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 114/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 115/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 116/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 117/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 118/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 119/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 120/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 121/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 122/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 123/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 124/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 125/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 126/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 127/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 128/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 129/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 130/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 131/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 132/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 133/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 134/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 135/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 136/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 137/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 138/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 139/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 140/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 141/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 142/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 143/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 144/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 145/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 146/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 147/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 148/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 149/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 150/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 151/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 152/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 153/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 154/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 155/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 156/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 157/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 158/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 159/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 160/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 161/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 162/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 163/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 164/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 165/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 166/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 167/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 168/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 169/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 170/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 171/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 172/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 173/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 174/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 175/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 176/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 177/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 178/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 179/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 180/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 181/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 182/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 183/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 184/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 185/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 186/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 187/188 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 187/189 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 187/190 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 188/190 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 188/191 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 188/192 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 188/193 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 188/194 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 188/195 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 188/196 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 188/197 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 188/198 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 188/199 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 188/200 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 188/201 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 188/202 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 188/203 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 188/204 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 188/205 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 188/206 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 188/207 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 188/208 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 188/209 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 188/210 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 188/211 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 188/212 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 188/213 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 188/214 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 188/215 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 188/216 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 188/217 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 188/218 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 188/219 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 188/220 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 188/221 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 188/222 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 188/223 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 188/224 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 188/225 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 188/226 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 188/227 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 188/228 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 188/229 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 188/230 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 188/231 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 188/232 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 188/233 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 188/234 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 188/235 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 188/236 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 188/237 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 188/238 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 188/239 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 188/240 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 188/241 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 188/242 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 188/243 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 188/244 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 188/245 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 188/246 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 188/247 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 188/248 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 188/249 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 188/250 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 188/251 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 188/252 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 188/253 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 188/254 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 188/255 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 188/256 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 188/257 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 188/258 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 188/259 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 188/260 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 188/261 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 188/262 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 188/263 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 188/264 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 188/265 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 188/266 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 188/267 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 188/268 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 188/269 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 188/270 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 188/271 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 188/272 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 188/273 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 188/274 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 188/275 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 188/276 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 188/277 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 188/278 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 188/279 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 188/280 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 188/281 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 188/282 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 188/283 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 188/284 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 188/285 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 188/286 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 188/287 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 188/288 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 188/289 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 188/290 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 188/291 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 188/292 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 188/293 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 188/294 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 188/295 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 188/296 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 188/297 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 188/298 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 188/299 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 188/300 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 188/301 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 188/302 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 188/303 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 188/304 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 188/305 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 188/306 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 188/307 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 188/308 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 188/309 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 188/310 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 188/311 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 188/312 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 188/313 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 188/314 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 188/315 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 188/316 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 188/317 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 188/318 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 188/319 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 188/320 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 188/321 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 188/322 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 188/323 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 188/324 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 188/325 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 188/326 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 188/327 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 188/328 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 188/329 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 188/330 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 188/331 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 188/332 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 188/333 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 188/334 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 188/335 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 188/336 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 188/337 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 188/338 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 188/339 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 188/340 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 188/341 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 188/342 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 188/343 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 188/344 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 188/345 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 188/346 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 188/347 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 188/348 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 188/349 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 188/350 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 188/351 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 188/352 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 188/353 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 188/354 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 188/355 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 188/356 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 188/357 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 188/358 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 188/359 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 188/360 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 188/361 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 188/362 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 188/363 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/364 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/365 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/366 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/367 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/368 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/369 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/370 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/371 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/372 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/373 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/374 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/375 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 188/376 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/377 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/378 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/379 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/380 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/381 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/382 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/383 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/384 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/385 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/386 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/387 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 188/388 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/389 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/390 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/391 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/392 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/393 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/394 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/395 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/396 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/397 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/398 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/399 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/400 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/401 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 188/402 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/403 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/404 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/405 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/406 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/407 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/408 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/409 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/410 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/411 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/412 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/413 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/414 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/415 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/416 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 188/417 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/418 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/419 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/420 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/421 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/422 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/423 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/424 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/425 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/426 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/427 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/428 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/429 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/430 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/431 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/432 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 188/433 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/434 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/435 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/436 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/437 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/438 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/439 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/440 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/441 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/442 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/443 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/444 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/445 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/446 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/447 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/448 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/449 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/450 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 188/451 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/452 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/453 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/454 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/455 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/456 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/457 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/458 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/459 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/460 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/461 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/462 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/463 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/464 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/465 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/466 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/467 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/468 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 188/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 189/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 190/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 191/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 192/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 193/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 194/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 34% 195/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 196/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 197/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 198/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 199/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 200/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 201/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 202/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 35% 203/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 204/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 205/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 206/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 207/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 208/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 209/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 210/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 36% 211/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 212/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 213/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 214/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 215/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 216/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 217/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 37% 218/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 219/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 220/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 221/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 222/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 223/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 224/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 225/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 38% 226/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 227/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 228/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 229/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 230/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 231/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 232/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 233/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 39% 234/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 235/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 236/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 237/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 238/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 239/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 240/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 241/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 40% 242/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 243/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 244/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 245/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 246/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 247/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 248/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 249/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 41% 250/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 251/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 252/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 253/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 254/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 255/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 256/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 42% 257/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 258/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 259/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 260/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 261/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 262/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 263/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 264/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 43% 265/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 266/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 267/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 268/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 269/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 270/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 271/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 272/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 44% 273/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 274/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 275/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 276/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 277/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 278/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 279/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 280/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 45% 281/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 282/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 283/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 284/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 285/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 286/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 287/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 288/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 46% 289/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 290/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 291/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 292/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 293/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 294/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 295/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 296/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 47% 297/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 298/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 299/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 300/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 301/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 302/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 303/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 48% 304/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 305/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 306/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 307/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 308/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 309/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 310/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 311/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 49% 312/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 313/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 314/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 315/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 316/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 317/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 318/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 319/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 50% 320/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 321/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 322/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 323/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 324/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 325/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 326/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 327/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 51% 328/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 329/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 330/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 331/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 332/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 333/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 334/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 335/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 52% 336/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 337/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 338/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 339/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 340/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 341/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 342/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 343/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 344/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 345/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 346/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 347/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 348/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 349/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 350/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 351/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 352/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 353/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 354/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 355/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 356/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 357/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 358/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 359/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 360/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 361/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 362/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 363/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 364/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 365/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 366/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 367/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 368/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 369/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 370/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 371/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 372/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 373/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 374/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 375/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 376/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 377/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 378/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 379/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 380/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 381/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 382/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 383/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 384/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 385/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 386/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 387/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 388/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 389/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 390/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 391/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 392/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 393/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 394/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 395/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 396/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 397/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 398/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 399/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 400/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 401/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 402/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 403/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 404/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 405/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 406/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 407/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 408/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 409/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 410/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 411/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 412/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 413/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 414/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 415/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 416/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 417/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 418/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 419/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 420/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 421/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 422/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 423/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 424/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 425/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 426/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 427/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 428/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 429/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 430/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 431/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 432/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 433/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 434/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 435/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 436/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 437/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 438/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 439/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 440/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 441/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 442/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 443/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 444/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 445/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 446/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 447/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 448/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 449/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 450/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 451/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 452/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 453/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 454/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 455/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 456/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 457/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 458/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 459/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 460/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 461/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 462/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 463/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 464/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 465/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 466/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 467/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 468/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 70% 469/469 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 469/470 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 469/471 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 469/472 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 469/473 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 469/474 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 469/475 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 469/476 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 469/477 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 469/478 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 469/479 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 469/480 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 469/481 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 469/482 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 469/483 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 469/484 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 469/485 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 469/486 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 469/487 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 469/488 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 469/489 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 469/490 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 469/491 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 469/492 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 469/493 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 469/494 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 469/495 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 469/496 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 469/497 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 469/498 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 469/499 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 469/500 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 469/501 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 469/502 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 469/503 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 469/504 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 469/505 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 469/506 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 469/507 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 469/508 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 469/509 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 469/510 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 469/511 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 469/512 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 469/513 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 469/514 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 469/515 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 469/516 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 469/517 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 469/518 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 469/519 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 469/520 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 469/521 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 469/522 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 469/523 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 469/524 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 469/525 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 469/526 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 469/527 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 469/528 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 469/529 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 469/530 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 469/531 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 469/532 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 469/533 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 469/534 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 469/535 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 469/536 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 469/537 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 469/538 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 469/539 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 469/540 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 469/541 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 469/542 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 469/543 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 469/544 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 469/545 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 469/546 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 469/547 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 469/548 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 469/549 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 469/550 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 469/551 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 469/552 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 469/553 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 469/554 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 469/555 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 469/556 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 469/557 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 469/558 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 469/559 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 469/560 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 469/561 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 469/562 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/563 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/564 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/565 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/566 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/567 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/568 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/569 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/570 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/571 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/572 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/573 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 469/574 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/575 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/576 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/577 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/578 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/579 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/580 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/581 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/582 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/583 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/584 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/585 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 469/586 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/587 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/588 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/589 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/590 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/591 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/592 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/593 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/594 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/595 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/596 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/597 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 469/598 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/599 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/600 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/601 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/602 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/603 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/604 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/605 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/606 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/607 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/608 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/609 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/610 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 469/611 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/612 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/613 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/614 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/615 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/616 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/617 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/618 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/619 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/620 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/621 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/622 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/623 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/624 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 469/625 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/626 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/627 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/628 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/629 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/630 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/631 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/632 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/633 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/634 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/635 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/636 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/637 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/638 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 469/639 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 469/640 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 469/641 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 469/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 53% 470/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 471/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 472/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 473/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 474/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 475/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 476/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 477/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 478/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 479/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 480/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 54% 481/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 482/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 483/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 484/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 485/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 486/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 487/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 488/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 489/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 490/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 491/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 55% 492/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 493/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 494/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 495/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 496/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 497/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 498/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 499/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 500/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 501/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 56% 502/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 503/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 504/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 505/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 506/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 507/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 508/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 509/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 510/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 511/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 512/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 57% 513/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 514/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 515/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 516/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 517/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 518/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 519/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 520/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 521/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 522/642 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 522/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 523/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 524/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 58% 525/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 526/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 527/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 528/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 529/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 530/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 531/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 532/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 533/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 534/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 59% 535/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 536/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 537/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 538/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 539/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 540/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 541/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 542/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 543/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 544/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 545/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 546/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 547/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 548/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 549/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 550/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 551/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 552/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 553/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 554/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 555/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 556/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 557/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 558/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 559/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 560/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 561/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 562/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 563/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 564/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 565/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 566/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 567/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 568/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 569/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 570/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 571/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 572/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 573/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 574/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 575/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 576/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 577/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 578/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 579/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 580/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 581/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 582/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 583/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 584/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 585/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 586/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 587/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 588/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 589/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 590/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 591/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 592/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 593/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 594/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 595/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 596/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 597/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 598/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 599/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 600/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 601/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 602/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 603/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 604/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 605/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 606/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 607/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 608/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 609/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 610/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 611/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 612/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 613/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 614/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 615/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 616/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 617/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 618/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 619/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 620/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 621/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 622/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 623/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 624/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 625/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 626/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 627/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 628/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 629/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 630/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 631/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 632/643 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 632/644 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 633/644 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 634/644 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 635/644 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 636/644 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 637/644 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 637/645 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 637/646 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 637/647 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 637/648 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 637/649 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 638/649 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 639/649 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 640/649 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 641/649 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 642/649 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 642/650 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 642/651 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 642/652 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/653 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/654 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/655 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/656 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/657 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/658 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/659 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/660 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/661 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/662 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/663 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 642/664 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 642/665 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 642/666 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 642/667 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 642/668 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 642/669 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 642/670 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 642/671 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 642/672 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 642/673 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 642/674 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 642/675 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/676 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/677 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/678 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/679 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/680 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/681 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/682 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/683 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/684 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/685 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/686 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 642/687 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/688 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/689 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/690 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/691 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/692 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/693 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/694 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/695 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/696 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/697 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/698 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/699 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 642/700 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/701 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/702 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/703 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/704 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/705 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/706 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/707 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/708 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/709 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/710 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/711 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/712 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 642/713 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/714 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/715 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/716 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/717 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/718 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/719 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/720 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/721 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/722 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/723 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/724 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/725 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 642/726 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/727 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/728 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/729 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/730 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/731 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/732 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/733 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/734 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/735 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/736 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/737 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/738 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/739 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 642/740 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/741 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/742 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/743 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/744 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/745 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/746 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/747 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/748 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/749 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/750 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/751 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/752 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/753 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/754 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 642/755 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 642/756 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 642/757 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 642/758 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 642/759 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 642/760 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 642/761 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 642/762 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 642/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 643/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 644/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 645/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 646/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 647/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 60% 648/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 649/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 650/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 651/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 652/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 653/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 654/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 655/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 656/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 657/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 658/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 659/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 660/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 61% 661/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 662/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 663/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 664/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 665/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 666/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 667/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 668/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 669/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 670/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 671/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 672/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 62% 673/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 674/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 675/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 676/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 677/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 678/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 679/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 680/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 681/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 682/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 683/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 684/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 685/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 63% 686/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 687/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 688/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 689/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 690/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 691/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 692/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 693/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 694/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 695/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 696/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 697/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 698/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 64% 699/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 700/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 701/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 702/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 703/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 704/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 705/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 706/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 707/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 708/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 709/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 710/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 711/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 65% 712/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 713/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 714/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 715/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 716/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 717/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 718/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 719/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 720/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 721/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 722/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 723/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 724/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 725/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 726/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 727/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 728/763 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 728/764 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 728/765 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 728/766 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 728/767 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 728/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 729/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 730/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 731/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 732/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 733/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 734/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 735/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 736/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 737/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 738/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 739/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 740/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 741/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 742/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 743/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 744/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 745/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 746/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 747/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 748/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 749/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 750/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 751/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 752/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 753/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 754/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 755/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 756/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 757/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 758/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 759/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 760/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 761/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 762/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 763/768 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 763/769 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 763/770 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 763/771 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 763/772 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 763/773 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 763/774 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 763/775 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/776 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/777 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/778 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/779 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/780 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/781 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/782 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/783 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/784 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/785 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/786 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/787 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/788 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 763/789 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/790 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/791 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/792 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/793 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/794 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/795 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/796 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/797 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/798 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/799 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/800 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/801 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/802 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 763/803 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/804 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/805 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/806 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/807 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/808 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/809 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/810 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/811 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/812 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/813 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/814 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 763/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 764/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 765/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 766/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 767/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 768/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 769/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 770/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 771/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 772/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 773/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 66% 774/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 775/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 776/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 777/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 778/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 779/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 780/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 781/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 782/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 783/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 784/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 785/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 786/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 67% 787/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 788/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 789/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 790/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 791/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 792/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 793/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 794/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 795/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 796/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 797/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 798/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 799/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 800/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 68% 801/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 802/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 803/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 804/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 805/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 806/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 807/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 808/815 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 808/816 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 808/817 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 809/817 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 810/817 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 811/817 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 812/817 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 813/817 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 814/817 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 815/817 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 815/818 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 815/819 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 816/819 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 817/819 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 817/820 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 818/820 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 69% 819/820 build modules\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 70% 820/820 build modules\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b\b\b\b\b\b\b\b\b 71% seal\b\b\b\b\b\b\b\b\b\b\b\b\b 73% optimize\b \b\b\b\b\b\b\b\b\b\b\b\b\b 75% hashing\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 76% create chunk assets\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 78% additional chunk assets\b \b\b \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 80% optimize chunk assets\b \b\b \b\b \b\b \b\b \b\b \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b 90% optimize assets\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b\b\b\b\b\b\b\b\b 95% emit\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \bVersion: webpack \u001b[1m1.15.0\u001b[22m", " \u001b[1mAsset\u001b[22m \u001b[1mSize\u001b[22m \u001b[1mChunks\u001b[22m \u001b[1m\u001b[22m \u001b[1mChunk Names\u001b[22m", " \u001b[1m\u001b[32mapp.js\u001b[39m\u001b[22m 1.52 MB \u001b[1m0\u001b[22m \u001b[1m\u001b[32m[emitted]\u001b[39m\u001b[22m app", "\u001b[1m\u001b[32mapp.vendor.js\u001b[39m\u001b[22m 2.5 MB \u001b[1m1\u001b[22m \u001b[1m\u001b[32m[emitted]\u001b[39m\u001b[22m vendor", "", "\u001b[1m\u001b[33mWARNING in app.js from UglifyJs", "Condition always true [.//angular-ui-router/release/stateEvents.js:8,0]", "Dropping unreachable code [.//angular-ui-router/release/stateEvents.js:10,0]", "Dropping unused variable hideOnSuperuser [./client/src/shared/form-generator.js:1837,20]", "Condition always true [.//codemirror/mode/javascript/javascript.js:5,0]", "Dropping unreachable code [.//codemirror/mode/javascript/javascript.js:7,0]", "Non-strict equality against boolean: == false [.//codemirror/mode/javascript/javascript.js:429,0]", "Non-strict equality against boolean: == false [.//codemirror/mode/javascript/javascript.js:430,0]", "Non-strict equality against boolean: != false [.//codemirror/mode/javascript/javascript.js:775,0]", "Condition always true [.//codemirror/mode/yaml/yaml.js:5,0]", "Dropping unreachable code [.//codemirror/mode/yaml/yaml.js:7,0]", "Condition always true [.//codemirror/addon/lint/lint.js:5,0]", "Dropping unreachable code [.//codemirror/addon/lint/lint.js:7,0]", "Non-strict equality against boolean: != false [.//codemirror/addon/lint/lint.js:89,0]", "Non-strict equality against boolean: != false [.//codemirror/addon/lint/lint.js:234,0]", "Condition always true [.//codemirror/addon/edit/closebrackets.js:5,0]", "Dropping unreachable code [.//codemirror/addon/edit/closebrackets.js:7,0]", "Condition always true [.//codemirror/addon/edit/matchbrackets.js:5,0]", "Dropping unreachable code [.//codemirror/addon/edit/matchbrackets.js:7,0]", "Condition always true [.//codemirror/addon/selection/active-line.js:5,0]", "Dropping unreachable code [.//codemirror/addon/selection/active-line.js:7,0]", "Condition left of || always false [./client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:122,34]", "Condition left of || always false [./client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:389,34]", "Dropping unused variable container [./client/lib/components/popover/popover.directive.js:25,8]", "Side effects in initialization of unused variable id [./client/lib/models/Base.js:289,12]\u001b[39m\u001b[22m", "", "\u001b[1m\u001b[33mWARNING in app.vendor.js from UglifyJs", "Side effects in initialization of unused variable support [.//lodash/index.js:4424,0]", "Dropping unused variable object [.//lodash/index.js:967,0]", "Condition always true [.//lodash/index.js:12174,0]", "Dropping unreachable code [.//lodash/index.js:12188,0]", "Side effects in initialization of unused variable moduleExports [.//lodash/index.js:273,0]", "Condition always true [.//jquery/dist/jquery.js:9778,0]", "Dropping unused variable result [.//angular/angular.js:917,0]", "Side effects in initialization of unused variable rawDocument [.//angular/angular.js:5742,0]", "Dropping unused variable logMsg [.//angular/angular.js:16178,0]", "Dropping unreachable code [.//angular/angular.js:18913,0]", "Dropping unused variable expression [.//angular/angular.js:14149,0]", "Side effects in initialization of unused variable value [.//angular/angular.js:26930,0]", "Dropping unused function includes [.//angular/angular.js:815,0]", "Dropping unused function nodesetLinkingFn [.//angular/angular.js:9262,0]", "Dropping unused function directiveLinkingFn [.//angular/angular.js:9269,0]", "Dropping side-effect-free statement [.//jquery-ui/jquery-ui.js:9273,0]", "Condition always true [.//bootstrap-datepicker/dist/js/bootstrap-datepicker.js:8,0]", "Dropping unreachable code [.//bootstrap-datepicker/dist/js/bootstrap-datepicker.js:10,5]", "Condition always true [.//codemirror/lib/codemirror.js:11,0]", "Non-strict equality against boolean: == false [.//codemirror/lib/codemirror.js:1299,0]", "Dropping side-effect-free statement [.//js-yaml/lib/js-yaml/type/binary.js:1,0]", "Dropping unused variable require [.//js-yaml/lib/js-yaml/type/binary.js:1,0]", "Dropping unused variable _require [.//js-yaml/lib/js-yaml/type/binary.js:9,0]", "Dropping side-effect-free statement [.//js-yaml/lib/js-yaml/type/js/function.js:1,0]", "Dropping unused variable require [.//js-yaml/lib/js-yaml/type/js/function.js:1,0]", "Dropping unused variable _require [.//js-yaml/lib/js-yaml/type/js/function.js:14,0]", "Condition always true [.//esprima/dist/esprima.js:3,0]", "Dropping unreachable code [.//esprima/dist/esprima.js:5,0]", "Condition always true [.//select2/dist/js/select2.full.js:9,0]", "Dropping unreachable code [.//select2/dist/js/select2.full.js:12,3]", "Side effects in initialization of unused variable $label [.//select2/dist/js/select2.full.js:972,0]", "Side effects in initialization of unused variable id [.//select2/dist/js/select2.full.js:1350,0]", "Dropping unused variable self [.//select2/dist/js/select2.full.js:1426,0]", "Dropping unused variable matches [.//select2/dist/js/select2.full.js:3430,0]", "Side effects in initialization of unused variable tag [.//select2/dist/js/select2.full.js:3608,0]", "Condition always true [.//select2/dist/js/select2.full.js:6150,5]", "Dropping unreachable code [.//select2/dist/js/select2.full.js:6155,0]", "Side effects in initialization of unused variable instance [.//select2/dist/js/select2.full.js:6378,0]", "Condition always true [.//angular-ui-router/release/angular-ui-router.js:8,0]", "Dropping unreachable code [.//angular-ui-router/release/angular-ui-router.js:10,0]", "Dropping unused function _toJson [.//angular-ui-router/release/angular-ui-router.js:1148,0]", "Dropping unused function _fromJson [.//angular-ui-router/release/angular-ui-router.js:1151,0]", "Dropping unused function promiseToString [.//angular-ui-router/release/angular-ui-router.js:1154,0]", "Side effects in initialization of unused variable resolveContext [.//angular-ui-router/release/angular-ui-router.js:2448,0]", "Side effects in initialization of unused variable state [.//angular-ui-router/release/angular-ui-router.js:4888,0]", "Side effects in initialization of unused variable app [.//angular-ui-router/release/angular-ui-router.js:6625,0]", "Dropping unused variable $stateParams [.//angular-ui-router/release/angular-ui-router.js:6890,0]", "Dropping unused variable $transitions [.//angular-ui-router/release/angular-ui-router.js:6898,0]", "Dropping unused variable $transitionsProvider [.//angular-ui-router/release/angular-ui-router.js:6906,0]", "Dropping unused variable $state [.//angular-ui-router/release/angular-ui-router.js:6912,0]", "Dropping unused variable $stateProvider [.//angular-ui-router/release/angular-ui-router.js:6918,0]", "Dropping unused variable $urlRouterProvider [.//angular-ui-router/release/angular-ui-router.js:6924,0]", "Dropping unused variable $urlRouter [.//angular-ui-router/release/angular-ui-router.js:6930,0]", "Dropping unused variable $urlMatcherFactory [.//angular-ui-router/release/angular-ui-router.js:6939,0]", "Dropping unused variable $urlMatcherFactoryProvider [.//angular-ui-router/release/angular-ui-router.js:6948,0]", "Condition always true [.//sprintf-js/src/sprintf.js:200,0]", "Condition left of && always true [.//sprintf-js/src/sprintf.js:208,0]", "Condition always true [.//moment/moment.js:8,0]", "Condition always true [.//moment/locale/af.js:6,0]", "Condition always true [.//moment/locale/ar.js:8,0]", "Condition always true [.//moment/locale/ar-ma.js:7,0]", "Condition always true [.//moment/locale/ar-sa.js:6,0]", "Condition always true [.//moment/locale/ar-tn.js:5,0]", "Condition always true [.//moment/locale/az.js:6,0]", "Condition always true [.//moment/locale/be.js:8,0]", "Condition always true [.//moment/locale/bg.js:6,0]", "Condition always true [.//moment/locale/bn.js:6,0]", "Condition always true [.//moment/locale/bo.js:6,0]", "Condition always true [.//moment/locale/br.js:6,0]", "Condition always true [.//moment/locale/bs.js:7,0]", "Condition always true [.//moment/locale/ca.js:6,0]", "Condition always true [.//moment/locale/cs.js:6,0]", "Dropping unreachable code [.//moment/locale/cs.js:30,0]", "Dropping unreachable code [.//moment/locale/cs.js:39,0]", "Dropping unreachable code [.//moment/locale/cs.js:48,0]", "Dropping unreachable code [.//moment/locale/cs.js:57,0]", "Dropping unreachable code [.//moment/locale/cs.js:66,0]", "Condition always true [.//moment/locale/cv.js:6,0]", "Condition always true [.//moment/locale/cy.js:6,0]", "Condition always true [.//moment/locale/da.js:6,0]", "Condition always true [.//moment/locale/de.js:7,0]", "Condition always true [.//moment/locale/de-at.js:8,0]", "Condition always true [.//moment/locale/el.js:6,0]", "Condition always true [.//moment/locale/en-au.js:5,0]", "Condition always true [.//moment/locale/en-ca.js:6,0]", "Condition always true [.//moment/locale/en-gb.js:6,0]", "Condition always true [.//moment/locale/eo.js:8,0]", "Condition always true [.//moment/locale/es.js:6,0]", "Condition always true [.//moment/locale/et.js:7,0]", "Condition always true [.//moment/locale/eu.js:6,0]", "Condition always true [.//moment/locale/fa.js:6,0]", "Condition always true [.//moment/locale/fi.js:6,0]", "Condition always true [.//moment/locale/fo.js:6,0]", "Condition always true [.//moment/locale/fr.js:6,0]", "Condition always true [.//moment/locale/fr-ca.js:6,0]", "Condition always true [.//moment/locale/fy.js:6,0]", "Condition always true [.//moment/locale/gl.js:6,0]", "Condition always true [.//moment/locale/he.js:8,0]", "Condition always true [.//moment/locale/hi.js:6,0]", "Condition always true [.//moment/locale/hr.js:6,0]", "Condition always true [.//moment/locale/hu.js:6,0]", "Dropping unused variable suffix [.//moment/locale/hu.js:15,0]", "Condition always true [.//moment/locale/hy-am.js:6,0]", "Condition always true [.//moment/locale/id.js:7,0]", "Condition always true [.//moment/locale/is.js:6,0]", "Condition always true [.//moment/locale/it.js:7,0]", "Condition always true [.//moment/locale/ja.js:6,0]", "Condition always true [.//moment/locale/jv.js:7,0]", "Condition always true [.//moment/locale/ka.js:6,0]", "Condition always true [.//moment/locale/km.js:6,0]", "Condition always true [.//moment/locale/ko.js:10,0]", "Condition always true [.//moment/locale/lb.js:6,0]", "Condition always true [.//moment/locale/lt.js:6,0]", "Condition always true [.//moment/locale/lv.js:7,0]", "Condition always true [.//moment/locale/me.js:6,0]", "Condition always true [.//moment/locale/mk.js:6,0]", "Condition always true [.//moment/locale/ml.js:6,0]", "Condition always true [.//moment/locale/mr.js:6,0]", "Condition always true [.//moment/locale/ms.js:6,0]", "Condition always true [.//moment/locale/ms-my.js:6,0]", "Condition always true [.//moment/locale/my.js:6,0]", "Condition always true [.//moment/locale/nb.js:7,0]", "Condition always true [.//moment/locale/ne.js:6,0]", "Condition always true [.//moment/locale/nl.js:6,0]", "Condition always true [.//moment/locale/nn.js:6,0]", "Condition always true [.//moment/locale/pl.js:6,0]", "Condition always true [.//moment/locale/pt.js:6,0]", "Condition always true [.//moment/locale/pt-br.js:6,0]", "Condition always true [.//moment/locale/ro.js:7,0]", "Condition always true [.//moment/locale/ru.js:7,0]", "Condition always true [.//moment/locale/si.js:6,0]", "Condition always true [.//moment/locale/sk.js:7,0]", "Dropping unreachable code [.//moment/locale/sk.js:31,0]", "Dropping unreachable code [.//moment/locale/sk.js:40,0]", "Dropping unreachable code [.//moment/locale/sk.js:49,0]", "Dropping unreachable code [.//moment/locale/sk.js:58,0]", "Dropping unreachable code [.//moment/locale/sk.js:67,0]", "Condition always true [.//moment/locale/sl.js:6,0]", "Condition always true [.//moment/locale/sq.js:8,0]", "Condition always true [.//moment/locale/sr.js:6,0]", "Condition always true [.//moment/locale/sr-cyrl.js:6,0]", "Condition always true [.//moment/locale/sv.js:6,0]", "Condition always true [.//moment/locale/ta.js:6,0]", "Condition always true [.//moment/locale/th.js:6,0]", "Condition always true [.//moment/locale/tl-ph.js:6,0]", "Condition always true [.//moment/locale/tr.js:7,0]", "Condition always true [.//moment/locale/tzl.js:6,0]", "Condition always true [.//moment/locale/tzm.js:6,0]", "Condition always true [.//moment/locale/tzm-latn.js:6,0]", "Condition always true [.//moment/locale/uk.js:7,0]", "Condition always true [.//moment/locale/uz.js:6,0]", "Condition always true [.//moment/locale/vi.js:6,0]", "Condition always true [.//moment/locale/zh-cn.js:7,0]", "Condition always true [.//moment/locale/zh-tw.js:6,0]", "Condition always true [.//reconnectingwebsocket/reconnecting-websocket.js:96,0]", "Dropping unreachable code [.//reconnectingwebsocket/reconnecting-websocket.js:98,5]", "Non-strict equality against boolean: == true [.//reconnectingwebsocket/reconnecting-websocket.js:289,0]", "Dropping side-effect-free statement [.//angular-moment/angular-moment.js:3,0]", "Condition always true [.//angular-moment/angular-moment.js:624,0]", "Dropping unreachable code [.//angular-moment/angular-moment.js:626,2]", "Condition always true [.//angular-scheduler/lib/angular-scheduler.js:16,0]", "Dropping unreachable code [.//angular-scheduler/lib/angular-scheduler.js:19,5]", "Condition always true [.//rrule/lib/rrule.js:21,3]", "Dropping unreachable code [.//rrule/lib/rrule.js:24,0]", "Condition always true [.//rrule/lib/rrule.js:2270,7]", "Dropping unreachable code [.//rrule/lib/rrule.js:2273,0]", "Condition always true [.//rrule/lib/nlp.js:25,3]", "Dropping unreachable code [.//rrule/lib/nlp.js:28,0]", "Condition always true [.//timezone-js/src/date.js:45,0]", "Dropping unreachable code [.//timezone-js/src/date.js:49,3]", "Condition always true [.//timezone-js/src/date.js:64,0]", "Dropping unreachable code [.//timezone-js/src/date.js:69,0]", "Declarations in unreachable code! [.//timezone-js/src/date.js:69,0]", "Condition always true [.//jstimezonedetect/jstz.js:353,0]", "Dropping unreachable code [.//jstimezonedetect/jstz.js:356,0]", "Dropping side-effect-free statement [.//angular-md5/angular-md5.js:14,0]", "Dropping side-effect-free statement [.//angular-md5/angular-md5.js:25,0]", "Dropping side-effect-free statement [.//angular-md5/angular-md5.js:31,0]", "Condition always true [.//ng-toast/dist/ngToast.js:8,0]", "Dropping unreachable code [.//ng-toast/dist/ngToast.js:11,5]", "Condition always true [.//ng-toast/dist/ngToast.js:147,0]", "Dropping unreachable code [.//ng-toast/dist/ngToast.js:150,5]", "Condition always true [.//ng-toast/dist/ngToast.js:300,0]", "Dropping unreachable code [.//ng-toast/dist/ngToast.js:303,5]", "Side effects in initialization of unused variable yScale [.//nvd3/build/nv.d3.js:150,0]", "Side effects in initialization of unused variable boundRect [.//nvd3/build/nv.d3.js:593,0]", "Dropping unused variable _self [.//nvd3/build/nv.d3.js:1207,0]", "Side effects in initialization of unused variable gEnter [.//nvd3/build/nv.d3.js:1504,0]", "Dropping unused variable axisRendered [.//nvd3/build/nv.d3.js:1479,0]", "Dropping unused variable maxMinRendered [.//nvd3/build/nv.d3.js:1480,0]", "Side effects in initialization of unused variable x0 [.//nvd3/build/nv.d3.js:1868,0]", "Dropping unused variable w0 [.//nvd3/build/nv.d3.js:1893,0]", "Dropping unused variable xp0 [.//nvd3/build/nv.d3.js:1895,0]", "Dropping unused variable w0 [.//nvd3/build/nv.d3.js:2127,0]", "Dropping unused variable w1 [.//nvd3/build/nv.d3.js:2128,0]", "Dropping unused variable transitionDuration [.//nvd3/build/nv.d3.js:2303,0]", "Side effects in initialization of unused variable g [.//nvd3/build/nv.d3.js:3019,0]", "Side effects in initialization of unused variable availableLength [.//nvd3/build/nv.d3.js:3497,0]", "Side effects in initialization of unused variable gEnter [.//nvd3/build/nv.d3.js:3515,0]", "Dropping unused variable domain [.//nvd3/build/nv.d3.js:3476,0]", "Side effects in initialization of unused variable barsEnter [.//nvd3/build/nv.d3.js:3721,0]", "Side effects in initialization of unused variable gEnter [.//nvd3/build/nv.d3.js:4301,0]", "Dropping unused variable endFn [.//nvd3/build/nv.d3.js:6313,0]", "Side effects in initialization of unused variable barsEnter [.//nvd3/build/nv.d3.js:6439,0]", "Side effects in initialization of unused variable defsEnter [.//nvd3/build/nv.d3.js:7159,0]", "Side effects in initialization of unused variable g [.//nvd3/build/nv.d3.js:7161,0]", "Dropping unused variable delay [.//nvd3/build/nv.d3.js:7078,0]", "Dropping unused variable y [.//nvd3/build/nv.d3.js:7811,0]", "Side effects in initialization of unused variable ticksEnter [.//nvd3/build/nv.d3.js:8340,0]", "Dropping unused function angle [.//nvd3/build/nv.d3.js:8939,0]", "Dropping unused variable duration [.//nvd3/build/nv.d3.js:8672,0]", "Dropping unused variable that [.//nvd3/build/nv.d3.js:9085,0]", "Dropping unused variable eventElements [.//nvd3/build/nv.d3.js:9390,0]", "Side effects in initialization of unused variable gEnter [.//nvd3/build/nv.d3.js:10202,0]", "Side effects in initialization of unused variable g [.//nvd3/build/nv.d3.js:10203,0]", "Dropping unused variable yDistMax [./~/nvd3/build/nv.d3.js:11198,0]\u001b[39m\u001b[22m", "", "Running "concat:css" (concat) task", "", "Running "cssmin:vendor" (cssmin) task", ">> 1 file created. 200.59 kB → 189.89 kB", "", "Running "cssmin:source" (cssmin) task", ">> 1 file created. 227.27 kB → 225.29 kB", "", "Done.", "", "", "Execution Time (2017-09-08 10:13:37 UTC-4)", "concurrent:prod 11s ▇▇▇▇▇▇▇▇▇ 19%", "webpack:prod 44.9s ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 79%", "Total 56.9s", "", "touch awx/ui/.release_built", "echo 1.0.0.292 > VERSION", "python setup.py sdist", "running sdist", "running egg_info", "creating awx.egg-info", "writing awx.egg-info/PKG-INFO", "writing top-level names to awx.egg-info/top_level.txt", "writing dependency_links to awx.egg-info/dependency_links.txt", "writing entry points to awx.egg-info/entry_points.txt", "writing manifest file 'awx.egg-info/SOURCES.txt'", "reading manifest file 'awx.egg-info/SOURCES.txt'", "reading manifest template 'MANIFEST.in'", "writing manifest file 'awx.egg-info/SOURCES.txt'", "running check", "Makefile:520: recipe for target 'dist/awx-1.0.0.292.tar.gz' failed"]}

Error while running docker as sudo on ubuntu server.

Summary

If you run docker have to run docker as sudo you get this error:

"Error connecting: Error while fetching server API version: ('Connection aborted.', error(13, 'Permission denied'))

Environment

  • Operating System: Ubuntu 16.04

Additional Information:

Followed this guide to fix the issue:
https://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo

Not sure if this is something worth documenting or not. Hopefully this helps save someone some troubleshooting.

External Auth Provider Support

Summary

I'd love to see AWX natively support external authentication providers. Specifically, SAML and LDAP auth. I've been going through the WebUI and can't seem to find anything. I have found the Tower documentation stating it's available for that.

Environment

  • AWX version: 1.0.0.286
  • Ansible version: 2.3.1.0
  • Operating System: macOS (local dev environment)
  • Web Browser: Google Chrome

No Route To Host / Connection Issues

Summary

It appears awx_task runner can't connect to anything. I am assuming this has something to do with docker bridge networking or some other networking component. The node this is deployed to has public internet access as well as private network access.

Environment

Ubuntu 16.04
AWX Deployment Script Used

9806b36e4525        awx_web:1.0.0.286    "/tini -- /bin/sh ..."   About an hour ago   Up 2 seconds        0.0.0.0:80->8052/tcp                 awx_web
d9fd5cce6a40        awx_task:1.0.0.286   "/tini -- /bin/sh ..."   2 hours ago         Up 2 hours          8052/tcp                             awx_task
87b101920dcf        memcached:alpine     "docker-entrypoint..."   2 hours ago         Up 2 hours          11211/tcp                            memcached
37504846c7f5        rabbitmq:3           "docker-entrypoint..."   2 hours ago         Up 2 hours          4369/tcp, 5671-5672/tcp, 25672/tcp   rabbitmq
bbf46397d84b        postgres:9.6         "docker-entrypoint..."   2 hours ago         Up 2 hours          5432/tcp                             postgres

Steps To Reproduce:

When running a template job in containers every run returns. Used Install guide on fresh Ubuntu 16.04 node. Tried overwriting ansible_host and other parameters.

Identity added: /tmp/awx_21_6d2f8b/credential_7 (/tmp/awx_21_6d2f8b/credential_7)
Using /etc/ansible/ansible.cfg as config file
ERROR! Attempted to execute "/usr/lib/python2.7/site-packages/awx/plugins/inventory/awxrest.py" as inventory script: Inventory script (/usr/lib/python2.7/site-packages/awx/plugins/inventory/awxrest.py) had an execution error: HTTPConnectionPool(host='awxweb', port=8052): Max retries exceeded with url: /api/v1/inventories/5/script/?hostvars=1 (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x205e9d0>: Failed to establish a new connection: [Errno 113] No route to host',))
None

Expected Results:

Be able to connect to hosts or receive enough output to debug.

Actual Results:

Posted above.

Feature: update Django to 1.11 and Celery 4.0

Summary

django-1.8 goes EOL in April 2018. We should upgade to Django-1.11, the latest LTS.

This probably involves fixing a large variety of minor things.

Environment

  • AWX version: now

Additional Information:

External AUTH Providers - Can't Save configuration form without changing the dropdown

The external AUTH providers for LDAP, RADIUS, SAML, and TACACS+ all have the Save button grayed out and disabled. I cannot save their config. I know the footer UI is in the way, but if you zoom out you can access the buttons. The other external providers like OAuth2 and Github work just fine.

I didn't think there were any dependencies for those services?

  • AWX version: 1.0.0.312
  • Ansible version: 2.3.1
  • Operating System: RHEL 7
  • Web Browser: Chrome and Firefox

image

issue running the install playbook on fedora 26

Summary

While the running the install playbook, it fails because it cannot find docker-py.
fatal: [localhost -> localhost]: FAILED! => { "changed": false, "failed": true, "invocation": { "module_args": { "api_version": null, "archive_path": null, "buildargs": null, "cacert_path": null, "cert_path": null, "container_limits": null, "debug": false, "docker_host": null, "dockerfile": "Dockerfile", "filter_logger": false, "force": false, "http_timeout": null, "key_path": null, "load_path": null, "name": "awx_web", "nocache": "False", "path": "/tmp/docker-image", "pull": true, "push": false, "repository": null, "rm": true, "ssl_version": null, "state": "present", "tag": "1.0.0.273", "timeout": null, "tls": null, "tls_hostname": null, "tls_verify": null, "use_tls": "no" } }, "msg": "Failed to import docker-py - cannot import name DependencyWarning. Trypip install docker-py" }

Environment

Steps To Reproduce:

Install the required applications by following the installer.md and run the installer playbook on fedora 26.

Expected Results:

it should find docker-py and continue the install

Actual Results:

"msg": "Failed to import docker-py - cannot import name DependencyWarning. Try pip install docker-py"

Additional Information:

Feature: Token-based authentication to AWX

AWX Feature Spec - Token-based authentication to AWX

User Persona

AWX administrator configuring AWX integrations with other services

Usage Cases

Administrator is used to Slack/Trello/etc. and other services that
use authentication tokens rather than a user/password combo to authenticate
to API services. AWX should support this use case.

Authentication tokens should either:

  • be scoped to a particular user, and inherit that user’s permissions
  • be a toplevel item akin to a user, and be able to be assigned permissions directly

If tied to a user, a user should be able to create and revoke their own tokens.
Token access/usage should be logged.

API Considerations

Suggested implementation: https://github.com/evonove/django-oauth-toolkit

UI/UX Considerations

TBD based on API work.

Docs

QA Suggestions

Notes

Updates/Changelog

2017-09-06: Initial version

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.