Total number of containers: 2
Using packing class: org.apache.heron.packing.roundrobin.RoundRobinPacking
[1mContainer 1[0m
CPU: 6.0, RAM: 7168 MB, Disk: 7168 MB
====================================================
| [1mcomponent[0m | [1mtask ID[0m | [1mCPU[0m | [1mRAM (MB)[0m | [1mdisk (MB)[0m |
----------------------------------------------------
|      word |       5 | 1.5 |     2048 |         0 |
|  exclaim1 |       3 | 1.5 |     2048 |         0 |
|  exclaim1 |       1 | 1.5 |     2048 |         0 |
====================================================

[1mContainer 2[0m
CPU: 6.0, RAM: 7168 MB, Disk: 7168 MB
====================================================
| [1mcomponent[0m | [1mtask ID[0m | [1mCPU[0m | [1mRAM (MB)[0m | [1mdisk (MB)[0m |
----------------------------------------------------
|      word |       6 | 1.5 |     2048 |         0 |
|  exclaim1 |       2 | 1.5 |     2048 |         0 |
|  exclaim1 |       4 | 1.5 |     2048 |         0 |
====================================================
