3v4l.org

run code in 500+ PHP versions simultaneously
<?php error_reporting(-1); abstract class AbstractWorker { private $rank; private $isBoss; private $salary; private $coffee; abstract public function getBasicPages(): int; public function __construct(int $rank, bool $isBoss, int $salary, int $coffee) { $this->rank = $rank; $this->isBoss = $isBoss; $this->coffee = $coffee; $this->salary = $salary; } public function getRank(): int { return $this->rank; } public function setRank(int $rank): void { $this->rank = $rank; } public function getBoss(): bool { return $this->isBoss; } public function setBoss(bool $isBoss): void { $this->isBoss = $isBoss; } public function getSalary(): float { $modifiedSalary = $this->salary; if ($this->rank == 2){ $modifiedSalary *= 1.25; } elseif ($this->rank == 3){ $modifiedSalary *= 1.5; } if ($this->isBoss){ $modifiedSalary *= 1.5; } return $modifiedSalary; } public function getCoffee(): int { $modifiedCoffee = $this->coffee; if ($this->isBoss){ $modifiedCoffee *= 2; } return $modifiedCoffee; } public function getPages(): int { $pages = $this->getBasicPages(); if ($this->isBoss){ $pages = 0; } return $pages; } public function setSalary(float $salary): void { $this->salary = $salary; } public function setCoffee(int $coffee): void { $this->coffee = $coffee; } } class Manager extends AbstractWorker { public function getBasicPages(): int { return 200; } } class Marketer extends AbstractWorker { public function getBasicPages(): int { return 150; } } class Engineer extends AbstractWorker { public function getBasicPages(): int { return 50; } } class Analyst extends AbstractWorker { public function getBasicPages(): int { return 5; } } class Department { private $name; private $workers = array(); public function __construct(string $name) { $this->name = $name; } public function getName(): string { return $this->name; } public function addWorker(AbstractWorker $worker): void { $this->workers[] = $worker; } public function getNumberWorkers(): int { return count($this->workers); } public function getDepartmentSalary(): float { $totalSalary = 0; foreach ($this->workers as $worker) { $totalSalary += $worker->getSalary(); } return $totalSalary; } public function getDepartmentCoffee(): int { $totalCoffee = 0; foreach ($this->workers as $worker) { $totalCoffee += $worker->getCoffee(); } return $totalCoffee; } public function getDepartmentPages(): int { $totalPages = 0; foreach ($this->workers as $worker) { $totalPages += $worker->getPages(); } return $totalPages; } public function getDepartmentName(): string { return $this->name; } public function getWorkers(): array { return $this->workers; } public function getWorker(int $key): AbstractWorker { return $this->workers[$key]; } public function deleteWorker(int $key): void { unset($this->workers[$key]); } public function selectWorkers(string $profession): array { $workersOfCertainProfession = array(); foreach ($this->workers as $worker) { if (get_class($worker) == $profession && $worker->getBoss() == FALSE){ $workersOfCertainProfession[] = $worker; } } return $workersOfCertainProfession; } public function changeBoss(int $oldBoss, int $newBoss) { $this->workers[$oldBoss]->setBoss(FALSE); $this->workers[$newBoss]->setBoss(TRUE); } } class Company { private $departments = array(); public function addDepartment(Department $department): void { $this->departments[] = $department; } public function getDepartments(): array { return $this->departments; } public function getDepartmentCount(): int { return count($this->departments); } } class HiringWorkers { public function addWorkersToDepartment(Department $department, string $profession, int $count, int $rank, bool $isBoss, float $salary, int $coffee): void { if ($profession == Manager::class){ for ($i = 0; $i < $count; $i++){ $department->addWorker(new Manager($rank, $isBoss, $salary, $coffee)); } } elseif ($profession == Marketer::class){ for ($i = 0; $i < $count; $i++){ $department->addWorker(new Marketer($rank, $isBoss, $salary, $coffee)); } } elseif ($profession == Engineer::class){ for ($i = 0; $i < $count; $i++){ $department->addWorker(new Engineer ($rank, $isBoss, $salary, $coffee)); } } elseif ($profession == Analyst::class){ for ($i = 0; $i < $count; $i++){ $department->addWorker(new Analyst ($rank, $isBoss, $salary, $coffee)); } } else { throw new Exception("Введено ошибочное название профессии"); } } } class Tabel { public function printTabel(Company $company): void { $this->printRow("Департамент", "сотр.", "тугр.", "кофе", "стр", "тугр./стр."); echo "\n"; foreach ($company->getDepartments() as $department) { $this->printRow($department->getDepartmentName(), $department->getNumberWorkers(), $department->getDepartmentSalary(), $department->getDepartmentCoffee(), $department->getDepartmentPages(), round($department->getDepartmentSalary() / $department->getDepartmentPages(), 1)); } echo "\n"; $count = 0; $salary = 0; $coffee = 0; $pages = 0; $salaryDividePages = 0; foreach ($company->getDepartments() as $department) { $count += $department->getNumberWorkers(); $salary += $department->getDepartmentSalary(); $coffee += $department->getDepartmentCoffee(); $pages += $department->getDepartmentPages(); $salaryDividePages += round($salary / $pages, 1); } $this->printRow("Всего", $count, $salary, $coffee, $pages, $salaryDividePages); $this->printRow("Среднее", round($count / $company->getDepartmentCount(), 1), round($salary / $company->getDepartmentCount(), 1), round($coffee / $company->getDepartmentCount(), 1), round($pages / $company->getDepartmentCount(), 1), round($salaryDividePages / $company->getDepartmentCount(), 1)); echo "\n"; } private function padLeft($value, $columnLength): void { echo $value; echo str_repeat(" ", $columnLength - mb_strlen($value)); } private function printRow(string $name, $count, $salary, $coffee, $pages, $salaryDividePages): void { $col1 = 15; $col2 = 10; $col3 = 10; $col4 = 8; $col5 = 8; $col6 = 15; echo $this->padLeft($name, $col1) . $this->padLeft($count, $col2) . $this->padLeft($salary, $col3) . $this->padLeft($coffee, $col4) . $this->padLeft($pages, $col5) . $this->padLeft($salaryDividePages, $col6) . "\n"; } } class AnticrisisService { public function cutEngineers(Company $company): void { foreach ($company->getDepartments() as $department) { $workersOfCertainProfession = array(); $workersOfCertainProfession = $department->selectWorkers("Engineer"); if (count($workersOfCertainProfession) == 0){ continue; } do { $numberOfPermutations = 0; for ($i = 0; $i < count($workersOfCertainProfession) - 2; $i++){ if ($workersOfCertainProfession[$i]->getRank() > $workersOfCertainProfession[$i+1]->getRank()){ $buf = $workersOfCertainProfession[$i]; $workersOfCertainProfession[$i] = $workersOfCertainProfession[$i+1]; $workersOfCertainProfession[$i+1] = $buf; $numberOfPermutations++; } } } while ($numberOfPermutations != 0); $workersOfCertainProfession = array_slice($workersOfCertainProfession, 0, ceil(count($workersOfCertainProfession) / 2.5)); foreach ($department->getWorkers() as $key => $worker) { if ($worker == $workersOfCertainProfession[0]){ $department->deleteWorker($key); unset($workersOfCertainProfession[0]); sort($workersOfCertainProfession); } if (count($workersOfCertainProfession) == 0){ break; } } } } public function changeDataAnalytics(Company $company): void { foreach ($company->getDepartments() as $department) { $countOfBasicAnalyst = 0; $keyOfBestAnalyst = 0; $rankOfBestAnalyst = 0; $keyOfWorker = -1; foreach ($department->getWorkers() as $worker) { $keyOfWorker++; if ($worker instanceof Analyst){ $worker->setSalary(1100); $worker->setCoffee(75); if ($worker->getBoss() == FALSE){ $countOfBasicAnalyst++; if ($worker->getRank() > $rankOfBestAnalyst){ $rankOfBestAnalyst = $worker->getRank(); $keyOfBestAnalyst = $keyOfWorker; } } } } if (!($department->getWorker($department->getNumberWorkers()-1) instanceof Analyst) && $countOfBasicAnalyst > 0){ $department->changeBoss($department->getNumberWorkers()-1, $keyOfBestAnalyst); } } } public function increaseManagers(Company $company): void { foreach ($company->getDepartments() as $department) { $manager1RangCount = 0; $manager2RangCount = 0; foreach ($department->getWorkers() as $worker) { if ($worker instanceof Manager && ($worker->getRank() == 1)){ $manager1RangCount++; } elseif ($worker instanceof Manager && ($worker->getRank() == 2)){ $manager2RangCount++; } } $manager1RangCount = ceil($manager1RangCount / 2); $manager2RangCount = ceil($manager2RangCount / 2); foreach ($department->getWorkers() as $worker) { if($manager1RangCount + $manager2RangCount == 0){ break; } if ($worker instanceof Manager && $worker->getRank() == 1 && $manager1RangCount > 0){ $worker->setRank($worker->getRank()+1); $manager1RangCount--; } elseif ($worker instanceof Manager && $worker->getRank() == 2 && $manager2RangCount > 0) { $worker->setRank($worker->getRank()+1); $manager2RangCount--; } } } } } $vektor = new Company; $tabel = new Tabel; $hiringWorkers = new HiringWorkers; $departmentOfProcurement = new Department("Закупок"); $hiringWorkers->addWorkersToDepartment($departmentOfProcurement, "Manager", 9, 1, FALSE, 500, 20); $hiringWorkers->addWorkersToDepartment($departmentOfProcurement, "Manager", 3, 2, FALSE, 500, 20); $hiringWorkers->addWorkersToDepartment($departmentOfProcurement, "Manager", 2, 3, FALSE, 500, 20); $hiringWorkers->addWorkersToDepartment($departmentOfProcurement, "Marketer", 2, 1, FALSE, 400, 15); $hiringWorkers->addWorkersToDepartment($departmentOfProcurement, "Manager", 1, 2, TRUE, 500, 20); $departmentOfSales = new Department("Продаж"); $hiringWorkers->addWorkersToDepartment($departmentOfSales, "Manager", 12, 1, FALSE, 500, 20); $hiringWorkers->addWorkersToDepartment($departmentOfSales, "Marketer", 6, 1, FALSE, 400, 15); $hiringWorkers->addWorkersToDepartment($departmentOfSales, "Analyst", 3, 1, FALSE, 800, 50); $hiringWorkers->addWorkersToDepartment($departmentOfSales, "Analyst", 2, 2, FALSE, 800, 50); $hiringWorkers->addWorkersToDepartment($departmentOfSales, "Marketer", 1, 2, TRUE, 400, 15); $departmentOfAdvertising = new Department("Рекламы"); $hiringWorkers->addWorkersToDepartment($departmentOfAdvertising, "Marketer", 15, 1, FALSE, 400, 15); $hiringWorkers->addWorkersToDepartment($departmentOfAdvertising, "Marketer", 10, 2, FALSE, 400, 15); $hiringWorkers->addWorkersToDepartment($departmentOfAdvertising, "Manager", 8, 1, FALSE, 500, 20); $hiringWorkers->addWorkersToDepartment($departmentOfAdvertising, "Engineer", 2, 1, FALSE, 200, 5); $hiringWorkers->addWorkersToDepartment($departmentOfAdvertising, "Marketer", 1, 3, TRUE, 400, 15); $departmentOfLogistics = new Department("Логистики"); $hiringWorkers->addWorkersToDepartment($departmentOfLogistics, "Manager", 13, 1, FALSE, 500, 20); $hiringWorkers->addWorkersToDepartment($departmentOfLogistics, "Manager", 5, 2, FALSE, 500, 20); $hiringWorkers->addWorkersToDepartment($departmentOfLogistics, "Engineer", 5, 1, FALSE, 200, 5); $hiringWorkers->addWorkersToDepartment($departmentOfLogistics, "Manager", 1, 1, TRUE, 500, 20); $vektor->addDepartment($departmentOfProcurement); $vektor->addDepartment($departmentOfSales); $vektor->addDepartment($departmentOfAdvertising); $vektor->addDepartment($departmentOfLogistics); $anticrisisService = new AnticrisisService; $anticrisisService->increaseManagers($vektor); $tabel->printTabel($vektor);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  (null)
number of ops:  221
compiled vars:  !0 = $vektor, !1 = $tabel, !2 = $hiringWorkers, !3 = $departmentOfProcurement, !4 = $departmentOfSales, !5 = $departmentOfAdvertising, !6 = $departmentOfLogistics, !7 = $anticrisisService
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                                   'error_reporting'
          1        SEND_VAL                                                     -1
          2        DO_ICALL                                                     
  432     3        NEW                                                  $9      'Company'
          4        DO_FCALL                                          0          
          5        ASSIGN                                                       !0, $9
  433     6        NEW                                                  $12     'Tabel'
          7        DO_FCALL                                          0          
          8        ASSIGN                                                       !1, $12
  434     9        NEW                                                  $15     'HiringWorkers'
         10        DO_FCALL                                          0          
         11        ASSIGN                                                       !2, $15
  436    12        NEW                                                  $18     'Department'
         13        SEND_VAL_EX                                                  '%D0%97%D0%B0%D0%BA%D1%83%D0%BF%D0%BE%D0%BA'
         14        DO_FCALL                                          0          
         15        ASSIGN                                                       !3, $18
  437    16        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         17        SEND_VAR_EX                                                  !3
         18        SEND_VAL_EX                                                  'Manager'
         19        SEND_VAL_EX                                                  9
         20        SEND_VAL_EX                                                  1
         21        SEND_VAL_EX                                                  <false>
         22        SEND_VAL_EX                                                  500
         23        SEND_VAL_EX                                                  20
         24        DO_FCALL                                          0          
  438    25        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         26        SEND_VAR_EX                                                  !3
         27        SEND_VAL_EX                                                  'Manager'
         28        SEND_VAL_EX                                                  3
         29        SEND_VAL_EX                                                  2
         30        SEND_VAL_EX                                                  <false>
         31        SEND_VAL_EX                                                  500
         32        SEND_VAL_EX                                                  20
         33        DO_FCALL                                          0          
  439    34        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         35        SEND_VAR_EX                                                  !3
         36        SEND_VAL_EX                                                  'Manager'
         37        SEND_VAL_EX                                                  2
         38        SEND_VAL_EX                                                  3
         39        SEND_VAL_EX                                                  <false>
         40        SEND_VAL_EX                                                  500
         41        SEND_VAL_EX                                                  20
         42        DO_FCALL                                          0          
  440    43        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         44        SEND_VAR_EX                                                  !3
         45        SEND_VAL_EX                                                  'Marketer'
         46        SEND_VAL_EX                                                  2
         47        SEND_VAL_EX                                                  1
         48        SEND_VAL_EX                                                  <false>
         49        SEND_VAL_EX                                                  400
         50        SEND_VAL_EX                                                  15
         51        DO_FCALL                                          0          
  441    52        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         53        SEND_VAR_EX                                                  !3
         54        SEND_VAL_EX                                                  'Manager'
         55        SEND_VAL_EX                                                  1
         56        SEND_VAL_EX                                                  2
         57        SEND_VAL_EX                                                  <true>
         58        SEND_VAL_EX                                                  500
         59        SEND_VAL_EX                                                  20
         60        DO_FCALL                                          0          
  443    61        NEW                                                  $26     'Department'
         62        SEND_VAL_EX                                                  '%D0%9F%D1%80%D0%BE%D0%B4%D0%B0%D0%B6'
         63        DO_FCALL                                          0          
         64        ASSIGN                                                       !4, $26
  444    65        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         66        SEND_VAR_EX                                                  !4
         67        SEND_VAL_EX                                                  'Manager'
         68        SEND_VAL_EX                                                  12
         69        SEND_VAL_EX                                                  1
         70        SEND_VAL_EX                                                  <false>
         71        SEND_VAL_EX                                                  500
         72        SEND_VAL_EX                                                  20
         73        DO_FCALL                                          0          
  445    74        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         75        SEND_VAR_EX                                                  !4
         76        SEND_VAL_EX                                                  'Marketer'
         77        SEND_VAL_EX                                                  6
         78        SEND_VAL_EX                                                  1
         79        SEND_VAL_EX                                                  <false>
         80        SEND_VAL_EX                                                  400
         81        SEND_VAL_EX                                                  15
         82        DO_FCALL                                          0          
  446    83        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         84        SEND_VAR_EX                                                  !4
         85        SEND_VAL_EX                                                  'Analyst'
         86        SEND_VAL_EX                                                  3
         87        SEND_VAL_EX                                                  1
         88        SEND_VAL_EX                                                  <false>
         89        SEND_VAL_EX                                                  800
         90        SEND_VAL_EX                                                  50
         91        DO_FCALL                                          0          
  447    92        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         93        SEND_VAR_EX                                                  !4
         94        SEND_VAL_EX                                                  'Analyst'
         95        SEND_VAL_EX                                                  2
         96        SEND_VAL_EX                                                  2
         97        SEND_VAL_EX                                                  <false>
         98        SEND_VAL_EX                                                  800
         99        SEND_VAL_EX                                                  50
        100        DO_FCALL                                          0          
  448   101        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        102        SEND_VAR_EX                                                  !4
        103        SEND_VAL_EX                                                  'Marketer'
        104        SEND_VAL_EX                                                  1
        105        SEND_VAL_EX                                                  2
        106        SEND_VAL_EX                                                  <true>
        107        SEND_VAL_EX                                                  400
        108        SEND_VAL_EX                                                  15
        109        DO_FCALL                                          0          
  450   110        NEW                                                  $34     'Department'
        111        SEND_VAL_EX                                                  '%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D1%8B'
        112        DO_FCALL                                          0          
        113        ASSIGN                                                       !5, $34
  451   114        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        115        SEND_VAR_EX                                                  !5
        116        SEND_VAL_EX                                                  'Marketer'
        117        SEND_VAL_EX                                                  15
        118        SEND_VAL_EX                                                  1
        119        SEND_VAL_EX                                                  <false>
        120        SEND_VAL_EX                                                  400
        121        SEND_VAL_EX                                                  15
        122        DO_FCALL                                          0          
  452   123        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        124        SEND_VAR_EX                                                  !5
        125        SEND_VAL_EX                                                  'Marketer'
        126        SEND_VAL_EX                                                  10
        127        SEND_VAL_EX                                                  2
        128        SEND_VAL_EX                                                  <false>
        129        SEND_VAL_EX                                                  400
        130        SEND_VAL_EX                                                  15
        131        DO_FCALL                                          0          
  453   132        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        133        SEND_VAR_EX                                                  !5
        134        SEND_VAL_EX                                                  'Manager'
        135        SEND_VAL_EX                                                  8
        136        SEND_VAL_EX                                                  1
        137        SEND_VAL_EX                                                  <false>
        138        SEND_VAL_EX                                                  500
        139        SEND_VAL_EX                                                  20
        140        DO_FCALL                                          0          
  454   141        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        142        SEND_VAR_EX                                                  !5
        143        SEND_VAL_EX                                                  'Engineer'
        144        SEND_VAL_EX                                                  2
        145        SEND_VAL_EX                                                  1
        146        SEND_VAL_EX                                                  <false>
        147        SEND_VAL_EX                                                  200
        148        SEND_VAL_EX                                                  5
        149        DO_FCALL                                          0          
  455   150        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        151        SEND_VAR_EX                                                  !5
        152        SEND_VAL_EX                                                  'Marketer'
        153        SEND_VAL_EX                                                  1
        154        SEND_VAL_EX                                                  3
        155        SEND_VAL_EX                                                  <true>
        156        SEND_VAL_EX                                                  400
        157        SEND_VAL_EX                                                  15
        158        DO_FCALL                                          0          
  457   159        NEW                                                  $42     'Department'
        160        SEND_VAL_EX                                                  '%D0%9B%D0%BE%D0%B3%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8'
        161        DO_FCALL                                          0          
        162        ASSIGN                                                       !6, $42
  458   163        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        164        SEND_VAR_EX                                                  !6
        165        SEND_VAL_EX                                                  'Manager'
        166        SEND_VAL_EX                                                  13
        167        SEND_VAL_EX                                                  1
        168        SEND_VAL_EX                                                  <false>
        169        SEND_VAL_EX                                                  500
        170        SEND_VAL_EX                                                  20
        171        DO_FCALL                                          0          
  459   172        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        173        SEND_VAR_EX                                                  !6
        174        SEND_VAL_EX                                                  'Manager'
        175        SEND_VAL_EX                                                  5
        176        SEND_VAL_EX                                                  2
        177        SEND_VAL_EX                                                  <false>
        178        SEND_VAL_EX                                                  500
        179        SEND_VAL_EX                                                  20
        180        DO_FCALL                                          0          
  460   181        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        182        SEND_VAR_EX                                                  !6
        183        SEND_VAL_EX                                                  'Engineer'
        184        SEND_VAL_EX                                                  5
        185        SEND_VAL_EX                                                  1
        186        SEND_VAL_EX                                                  <false>
        187        SEND_VAL_EX                                                  200
        188        SEND_VAL_EX                                                  5
        189        DO_FCALL                                          0          
  461   190        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        191        SEND_VAR_EX                                                  !6
        192        SEND_VAL_EX                                                  'Manager'
        193        SEND_VAL_EX                                                  1
        194        SEND_VAL_EX                                                  1
        195        SEND_VAL_EX                                                  <true>
        196        SEND_VAL_EX                                                  500
        197        SEND_VAL_EX                                                  20
        198        DO_FCALL                                          0          
  463   199        INIT_METHOD_CALL                                             !0, 'addDepartment'
        200        SEND_VAR_EX                                                  !3
        201        DO_FCALL                                          0          
  464   202        INIT_METHOD_CALL                                             !0, 'addDepartment'
        203        SEND_VAR_EX                                                  !4
        204        DO_FCALL                                          0          
  465   205        INIT_METHOD_CALL                                             !0, 'addDepartment'
        206        SEND_VAR_EX                                                  !5
        207        DO_FCALL                                          0          
  466   208        INIT_METHOD_CALL                                             !0, 'addDepartment'
        209        SEND_VAR_EX                                                  !6
        210        DO_FCALL                                          0          
  468   211        NEW                                                  $53     'AnticrisisService'
        212        DO_FCALL                                          0          
        213        ASSIGN                                                       !7, $53
  469   214        INIT_METHOD_CALL                                             !7, 'increaseManagers'
        215        SEND_VAR_EX                                                  !0
        216        DO_FCALL                                          0          
  471   217        INIT_METHOD_CALL                                             !1, 'printTabel'
        218        SEND_VAR_EX                                                  !0
        219        DO_FCALL                                          0          
        220      > RETURN                                                       1

Class AbstractWorker:
Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getBasicPages
number of ops:  2
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   12     0  E >   VERIFY_RETURN_TYPE                                           
          1      > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  __construct
number of ops:  13
compiled vars:  !0 = $rank, !1 = $isBoss, !2 = $salary, !3 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   14     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV                                                 !3      
   16     4        ASSIGN_OBJ                                                   'rank'
          5        OP_DATA                                                      !0
   17     6        ASSIGN_OBJ                                                   'isBoss'
          7        OP_DATA                                                      !1
   18     8        ASSIGN_OBJ                                                   'coffee'
          9        OP_DATA                                                      !3
   19    10        ASSIGN_OBJ                                                   'salary'
         11        OP_DATA                                                      !2
   20    12      > RETURN                                                       null

End of function __construct

Function getrank:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getRank
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   24     0  E >   FETCH_OBJ_R                                          ~0      'rank'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
   25     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getrank

Function setrank:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setRank
number of ops:  4
compiled vars:  !0 = $rank
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   27     0  E >   RECV                                                 !0      
   29     1        ASSIGN_OBJ                                                   'rank'
          2        OP_DATA                                                      !0
   30     3      > RETURN                                                       null

End of function setrank

Function getboss:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getBoss
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   34     0  E >   FETCH_OBJ_R                                          ~0      'isBoss'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
   35     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getboss

Function setboss:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setBoss
number of ops:  4
compiled vars:  !0 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   37     0  E >   RECV                                                 !0      
   39     1        ASSIGN_OBJ                                                   'isBoss'
          2        OP_DATA                                                      !0
   40     3      > RETURN                                                       null

End of function setboss

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 7
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 11
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
Branch analysis from position: 14
Branch analysis from position: 11
filename:       /in/h4J4X
function name:  getSalary
number of ops:  18
compiled vars:  !0 = $modifiedSalary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   44     0  E >   FETCH_OBJ_R                                          ~1      'salary'
          1        ASSIGN                                                       !0, ~1
   46     2        FETCH_OBJ_R                                          ~3      'rank'
          3        IS_EQUAL                                                     ~3, 2
          4      > JMPZ                                                         ~4, ->7
   47     5    >   ASSIGN_OP                                         3          !0, 1.25
   46     6      > JMP                                                          ->11
   48     7    >   FETCH_OBJ_R                                          ~6      'rank'
          8        IS_EQUAL                                                     ~6, 3
          9      > JMPZ                                                         ~7, ->11
   49    10    >   ASSIGN_OP                                         3          !0, 1.5
   52    11    >   FETCH_OBJ_R                                          ~9      'isBoss'
         12      > JMPZ                                                         ~9, ->14
   53    13    >   ASSIGN_OP                                         3          !0, 1.5
   56    14    >   VERIFY_RETURN_TYPE                                           !0
         15      > RETURN                                                       !0
   57    16*       VERIFY_RETURN_TYPE                                           
         17*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 5
Branch analysis from position: 4
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 5
filename:       /in/h4J4X
function name:  getCoffee
number of ops:  9
compiled vars:  !0 = $modifiedCoffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   61     0  E >   FETCH_OBJ_R                                          ~1      'coffee'
          1        ASSIGN                                                       !0, ~1
   63     2        FETCH_OBJ_R                                          ~3      'isBoss'
          3      > JMPZ                                                         ~3, ->5
   64     4    >   ASSIGN_OP                                         3          !0, 2
   67     5    >   VERIFY_RETURN_TYPE                                           !0
          6      > RETURN                                                       !0
   68     7*       VERIFY_RETURN_TYPE                                           
          8*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 6
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
filename:       /in/h4J4X
function name:  getPages
number of ops:  10
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   72     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   74     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4      > JMPZ                                                         ~3, ->6
   75     5    >   ASSIGN                                                       !0, 0
   78     6    >   VERIFY_RETURN_TYPE                                           !0
          7      > RETURN                                                       !0
   79     8*       VERIFY_RETURN_TYPE                                           
          9*     > RETURN                                                       null

End of function getpages

Function setsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setSalary
number of ops:  4
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   81     0  E >   RECV                                                 !0      
   83     1        ASSIGN_OBJ                                                   'salary'
          2        OP_DATA                                                      !0
   84     3      > RETURN                                                       null

End of function setsalary

Function setcoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setCoffee
number of ops:  4
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   86     0  E >   RECV                                                 !0      
   88     1        ASSIGN_OBJ                                                   'coffee'
          2        OP_DATA                                                      !0
   89     3      > RETURN                                                       null

End of function setcoffee

End of class AbstractWorker.

Class Manager:
Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getBasicPages
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   96     0  E > > RETURN                                                       200
   97     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  __construct
number of ops:  13
compiled vars:  !0 = $rank, !1 = $isBoss, !2 = $salary, !3 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   14     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV                                                 !3      
   16     4        ASSIGN_OBJ                                                   'rank'
          5        OP_DATA                                                      !0
   17     6        ASSIGN_OBJ                                                   'isBoss'
          7        OP_DATA                                                      !1
   18     8        ASSIGN_OBJ                                                   'coffee'
          9        OP_DATA                                                      !3
   19    10        ASSIGN_OBJ                                                   'salary'
         11        OP_DATA                                                      !2
   20    12      > RETURN                                                       null

End of function __construct

Function getrank:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getRank
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   24     0  E >   FETCH_OBJ_R                                          ~0      'rank'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
   25     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getrank

Function setrank:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setRank
number of ops:  4
compiled vars:  !0 = $rank
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   27     0  E >   RECV                                                 !0      
   29     1        ASSIGN_OBJ                                                   'rank'
          2        OP_DATA                                                      !0
   30     3      > RETURN                                                       null

End of function setrank

Function getboss:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getBoss
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   34     0  E >   FETCH_OBJ_R                                          ~0      'isBoss'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
   35     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getboss

Function setboss:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setBoss
number of ops:  4
compiled vars:  !0 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   37     0  E >   RECV                                                 !0      
   39     1        ASSIGN_OBJ                                                   'isBoss'
          2        OP_DATA                                                      !0
   40     3      > RETURN                                                       null

End of function setboss

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 7
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 11
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
Branch analysis from position: 14
Branch analysis from position: 11
filename:       /in/h4J4X
function name:  getSalary
number of ops:  18
compiled vars:  !0 = $modifiedSalary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   44     0  E >   FETCH_OBJ_R                                          ~1      'salary'
          1        ASSIGN                                                       !0, ~1
   46     2        FETCH_OBJ_R                                          ~3      'rank'
          3        IS_EQUAL                                                     ~3, 2
          4      > JMPZ                                                         ~4, ->7
   47     5    >   ASSIGN_OP                                         3          !0, 1.25
   46     6      > JMP                                                          ->11
   48     7    >   FETCH_OBJ_R                                          ~6      'rank'
          8        IS_EQUAL                                                     ~6, 3
          9      > JMPZ                                                         ~7, ->11
   49    10    >   ASSIGN_OP                                         3          !0, 1.5
   52    11    >   FETCH_OBJ_R                                          ~9      'isBoss'
         12      > JMPZ                                                         ~9, ->14
   53    13    >   ASSIGN_OP                                         3          !0, 1.5
   56    14    >   VERIFY_RETURN_TYPE                                           !0
         15      > RETURN                                                       !0
   57    16*       VERIFY_RETURN_TYPE                                           
         17*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 5
Branch analysis from position: 4
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 5
filename:       /in/h4J4X
function name:  getCoffee
number of ops:  9
compiled vars:  !0 = $modifiedCoffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   61     0  E >   FETCH_OBJ_R                                          ~1      'coffee'
          1        ASSIGN                                                       !0, ~1
   63     2        FETCH_OBJ_R                                          ~3      'isBoss'
          3      > JMPZ                                                         ~3, ->5
   64     4    >   ASSIGN_OP                                         3          !0, 2
   67     5    >   VERIFY_RETURN_TYPE                                           !0
          6      > RETURN                                                       !0
   68     7*       VERIFY_RETURN_TYPE                                           
          8*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 6
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
filename:       /in/h4J4X
function name:  getPages
number of ops:  10
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   72     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   74     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4      > JMPZ                                                         ~3, ->6
   75     5    >   ASSIGN                                                       !0, 0
   78     6    >   VERIFY_RETURN_TYPE                                           !0
          7      > RETURN                                                       !0
   79     8*       VERIFY_RETURN_TYPE                                           
          9*     > RETURN                                                       null

End of function getpages

Function setsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setSalary
number of ops:  4
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   81     0  E >   RECV                                                 !0      
   83     1        ASSIGN_OBJ                                                   'salary'
          2        OP_DATA                                                      !0
   84     3      > RETURN                                                       null

End of function setsalary

Function setcoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setCoffee
number of ops:  4
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   86     0  E >   RECV                                                 !0      
   88     1        ASSIGN_OBJ                                                   'coffee'
          2        OP_DATA                                                      !0
   89     3      > RETURN                                                       null

End of function setcoffee

End of class Manager.

Class Marketer:
Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getBasicPages
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  104     0  E > > RETURN                                                       150
  105     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  __construct
number of ops:  13
compiled vars:  !0 = $rank, !1 = $isBoss, !2 = $salary, !3 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   14     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV                                                 !3      
   16     4        ASSIGN_OBJ                                                   'rank'
          5        OP_DATA                                                      !0
   17     6        ASSIGN_OBJ                                                   'isBoss'
          7        OP_DATA                                                      !1
   18     8        ASSIGN_OBJ                                                   'coffee'
          9        OP_DATA                                                      !3
   19    10        ASSIGN_OBJ                                                   'salary'
         11        OP_DATA                                                      !2
   20    12      > RETURN                                                       null

End of function __construct

Function getrank:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getRank
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   24     0  E >   FETCH_OBJ_R                                          ~0      'rank'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
   25     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getrank

Function setrank:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setRank
number of ops:  4
compiled vars:  !0 = $rank
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   27     0  E >   RECV                                                 !0      
   29     1        ASSIGN_OBJ                                                   'rank'
          2        OP_DATA                                                      !0
   30     3      > RETURN                                                       null

End of function setrank

Function getboss:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getBoss
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   34     0  E >   FETCH_OBJ_R                                          ~0      'isBoss'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
   35     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getboss

Function setboss:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setBoss
number of ops:  4
compiled vars:  !0 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   37     0  E >   RECV                                                 !0      
   39     1        ASSIGN_OBJ                                                   'isBoss'
          2        OP_DATA                                                      !0
   40     3      > RETURN                                                       null

End of function setboss

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 7
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 11
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
Branch analysis from position: 14
Branch analysis from position: 11
filename:       /in/h4J4X
function name:  getSalary
number of ops:  18
compiled vars:  !0 = $modifiedSalary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   44     0  E >   FETCH_OBJ_R                                          ~1      'salary'
          1        ASSIGN                                                       !0, ~1
   46     2        FETCH_OBJ_R                                          ~3      'rank'
          3        IS_EQUAL                                                     ~3, 2
          4      > JMPZ                                                         ~4, ->7
   47     5    >   ASSIGN_OP                                         3          !0, 1.25
   46     6      > JMP                                                          ->11
   48     7    >   FETCH_OBJ_R                                          ~6      'rank'
          8        IS_EQUAL                                                     ~6, 3
          9      > JMPZ                                                         ~7, ->11
   49    10    >   ASSIGN_OP                                         3          !0, 1.5
   52    11    >   FETCH_OBJ_R                                          ~9      'isBoss'
         12      > JMPZ                                                         ~9, ->14
   53    13    >   ASSIGN_OP                                         3          !0, 1.5
   56    14    >   VERIFY_RETURN_TYPE                                           !0
         15      > RETURN                                                       !0
   57    16*       VERIFY_RETURN_TYPE                                           
         17*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 5
Branch analysis from position: 4
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 5
filename:       /in/h4J4X
function name:  getCoffee
number of ops:  9
compiled vars:  !0 = $modifiedCoffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   61     0  E >   FETCH_OBJ_R                                          ~1      'coffee'
          1        ASSIGN                                                       !0, ~1
   63     2        FETCH_OBJ_R                                          ~3      'isBoss'
          3      > JMPZ                                                         ~3, ->5
   64     4    >   ASSIGN_OP                                         3          !0, 2
   67     5    >   VERIFY_RETURN_TYPE                                           !0
          6      > RETURN                                                       !0
   68     7*       VERIFY_RETURN_TYPE                                           
          8*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 6
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
filename:       /in/h4J4X
function name:  getPages
number of ops:  10
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   72     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   74     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4      > JMPZ                                                         ~3, ->6
   75     5    >   ASSIGN                                                       !0, 0
   78     6    >   VERIFY_RETURN_TYPE                                           !0
          7      > RETURN                                                       !0
   79     8*       VERIFY_RETURN_TYPE                                           
          9*     > RETURN                                                       null

End of function getpages

Function setsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setSalary
number of ops:  4
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   81     0  E >   RECV                                                 !0      
   83     1        ASSIGN_OBJ                                                   'salary'
          2        OP_DATA                                                      !0
   84     3      > RETURN                                                       null

End of function setsalary

Function setcoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setCoffee
number of ops:  4
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   86     0  E >   RECV                                                 !0      
   88     1        ASSIGN_OBJ                                                   'coffee'
          2        OP_DATA                                                      !0
   89     3      > RETURN                                                       null

End of function setcoffee

End of class Marketer.

Class Engineer:
Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getBasicPages
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  112     0  E > > RETURN                                                       50
  113     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  __construct
number of ops:  13
compiled vars:  !0 = $rank, !1 = $isBoss, !2 = $salary, !3 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   14     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV                                                 !3      
   16     4        ASSIGN_OBJ                                                   'rank'
          5        OP_DATA                                                      !0
   17     6        ASSIGN_OBJ                                                   'isBoss'
          7        OP_DATA                                                      !1
   18     8        ASSIGN_OBJ                                                   'coffee'
          9        OP_DATA                                                      !3
   19    10        ASSIGN_OBJ                                                   'salary'
         11        OP_DATA                                                      !2
   20    12      > RETURN                                                       null

End of function __construct

Function getrank:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getRank
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   24     0  E >   FETCH_OBJ_R                                          ~0      'rank'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
   25     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getrank

Function setrank:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setRank
number of ops:  4
compiled vars:  !0 = $rank
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   27     0  E >   RECV                                                 !0      
   29     1        ASSIGN_OBJ                                                   'rank'
          2        OP_DATA                                                      !0
   30     3      > RETURN                                                       null

End of function setrank

Function getboss:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getBoss
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   34     0  E >   FETCH_OBJ_R                                          ~0      'isBoss'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
   35     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getboss

Function setboss:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setBoss
number of ops:  4
compiled vars:  !0 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   37     0  E >   RECV                                                 !0      
   39     1        ASSIGN_OBJ                                                   'isBoss'
          2        OP_DATA                                                      !0
   40     3      > RETURN                                                       null

End of function setboss

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 7
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 11
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
Branch analysis from position: 14
Branch analysis from position: 11
filename:       /in/h4J4X
function name:  getSalary
number of ops:  18
compiled vars:  !0 = $modifiedSalary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   44     0  E >   FETCH_OBJ_R                                          ~1      'salary'
          1        ASSIGN                                                       !0, ~1
   46     2        FETCH_OBJ_R                                          ~3      'rank'
          3        IS_EQUAL                                                     ~3, 2
          4      > JMPZ                                                         ~4, ->7
   47     5    >   ASSIGN_OP                                         3          !0, 1.25
   46     6      > JMP                                                          ->11
   48     7    >   FETCH_OBJ_R                                          ~6      'rank'
          8        IS_EQUAL                                                     ~6, 3
          9      > JMPZ                                                         ~7, ->11
   49    10    >   ASSIGN_OP                                         3          !0, 1.5
   52    11    >   FETCH_OBJ_R                                          ~9      'isBoss'
         12      > JMPZ                                                         ~9, ->14
   53    13    >   ASSIGN_OP                                         3          !0, 1.5
   56    14    >   VERIFY_RETURN_TYPE                                           !0
         15      > RETURN                                                       !0
   57    16*       VERIFY_RETURN_TYPE                                           
         17*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 5
Branch analysis from position: 4
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 5
filename:       /in/h4J4X
function name:  getCoffee
number of ops:  9
compiled vars:  !0 = $modifiedCoffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   61     0  E >   FETCH_OBJ_R                                          ~1      'coffee'
          1        ASSIGN                                                       !0, ~1
   63     2        FETCH_OBJ_R                                          ~3      'isBoss'
          3      > JMPZ                                                         ~3, ->5
   64     4    >   ASSIGN_OP                                         3          !0, 2
   67     5    >   VERIFY_RETURN_TYPE                                           !0
          6      > RETURN                                                       !0
   68     7*       VERIFY_RETURN_TYPE                                           
          8*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 6
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
filename:       /in/h4J4X
function name:  getPages
number of ops:  10
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   72     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   74     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4      > JMPZ                                                         ~3, ->6
   75     5    >   ASSIGN                                                       !0, 0
   78     6    >   VERIFY_RETURN_TYPE                                           !0
          7      > RETURN                                                       !0
   79     8*       VERIFY_RETURN_TYPE                                           
          9*     > RETURN                                                       null

End of function getpages

Function setsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setSalary
number of ops:  4
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   81     0  E >   RECV                                                 !0      
   83     1        ASSIGN_OBJ                                                   'salary'
          2        OP_DATA                                                      !0
   84     3      > RETURN                                                       null

End of function setsalary

Function setcoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setCoffee
number of ops:  4
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   86     0  E >   RECV                                                 !0      
   88     1        ASSIGN_OBJ                                                   'coffee'
          2        OP_DATA                                                      !0
   89     3      > RETURN                                                       null

End of function setcoffee

End of class Engineer.

Class Analyst:
Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getBasicPages
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  120     0  E > > RETURN                                                       5
  121     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  __construct
number of ops:  13
compiled vars:  !0 = $rank, !1 = $isBoss, !2 = $salary, !3 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   14     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV                                                 !3      
   16     4        ASSIGN_OBJ                                                   'rank'
          5        OP_DATA                                                      !0
   17     6        ASSIGN_OBJ                                                   'isBoss'
          7        OP_DATA                                                      !1
   18     8        ASSIGN_OBJ                                                   'coffee'
          9        OP_DATA                                                      !3
   19    10        ASSIGN_OBJ                                                   'salary'
         11        OP_DATA                                                      !2
   20    12      > RETURN                                                       null

End of function __construct

Function getrank:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getRank
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   24     0  E >   FETCH_OBJ_R                                          ~0      'rank'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
   25     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getrank

Function setrank:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setRank
number of ops:  4
compiled vars:  !0 = $rank
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   27     0  E >   RECV                                                 !0      
   29     1        ASSIGN_OBJ                                                   'rank'
          2        OP_DATA                                                      !0
   30     3      > RETURN                                                       null

End of function setrank

Function getboss:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getBoss
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   34     0  E >   FETCH_OBJ_R                                          ~0      'isBoss'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
   35     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getboss

Function setboss:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setBoss
number of ops:  4
compiled vars:  !0 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   37     0  E >   RECV                                                 !0      
   39     1        ASSIGN_OBJ                                                   'isBoss'
          2        OP_DATA                                                      !0
   40     3      > RETURN                                                       null

End of function setboss

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 7
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 11
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
Branch analysis from position: 14
Branch analysis from position: 11
filename:       /in/h4J4X
function name:  getSalary
number of ops:  18
compiled vars:  !0 = $modifiedSalary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   44     0  E >   FETCH_OBJ_R                                          ~1      'salary'
          1        ASSIGN                                                       !0, ~1
   46     2        FETCH_OBJ_R                                          ~3      'rank'
          3        IS_EQUAL                                                     ~3, 2
          4      > JMPZ                                                         ~4, ->7
   47     5    >   ASSIGN_OP                                         3          !0, 1.25
   46     6      > JMP                                                          ->11
   48     7    >   FETCH_OBJ_R                                          ~6      'rank'
          8        IS_EQUAL                                                     ~6, 3
          9      > JMPZ                                                         ~7, ->11
   49    10    >   ASSIGN_OP                                         3          !0, 1.5
   52    11    >   FETCH_OBJ_R                                          ~9      'isBoss'
         12      > JMPZ                                                         ~9, ->14
   53    13    >   ASSIGN_OP                                         3          !0, 1.5
   56    14    >   VERIFY_RETURN_TYPE                                           !0
         15      > RETURN                                                       !0
   57    16*       VERIFY_RETURN_TYPE                                           
         17*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 5
Branch analysis from position: 4
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 5
filename:       /in/h4J4X
function name:  getCoffee
number of ops:  9
compiled vars:  !0 = $modifiedCoffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   61     0  E >   FETCH_OBJ_R                                          ~1      'coffee'
          1        ASSIGN                                                       !0, ~1
   63     2        FETCH_OBJ_R                                          ~3      'isBoss'
          3      > JMPZ                                                         ~3, ->5
   64     4    >   ASSIGN_OP                                         3          !0, 2
   67     5    >   VERIFY_RETURN_TYPE                                           !0
          6      > RETURN                                                       !0
   68     7*       VERIFY_RETURN_TYPE                                           
          8*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 6
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
filename:       /in/h4J4X
function name:  getPages
number of ops:  10
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   72     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   74     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4      > JMPZ                                                         ~3, ->6
   75     5    >   ASSIGN                                                       !0, 0
   78     6    >   VERIFY_RETURN_TYPE                                           !0
          7      > RETURN                                                       !0
   79     8*       VERIFY_RETURN_TYPE                                           
          9*     > RETURN                                                       null

End of function getpages

Function setsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setSalary
number of ops:  4
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   81     0  E >   RECV                                                 !0      
   83     1        ASSIGN_OBJ                                                   'salary'
          2        OP_DATA                                                      !0
   84     3      > RETURN                                                       null

End of function setsalary

Function setcoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  setCoffee
number of ops:  4
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   86     0  E >   RECV                                                 !0      
   88     1        ASSIGN_OBJ                                                   'coffee'
          2        OP_DATA                                                      !0
   89     3      > RETURN                                                       null

End of function setcoffee

End of class Analyst.

Class Department:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  __construct
number of ops:  4
compiled vars:  !0 = $name
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  129     0  E >   RECV                                                 !0      
  131     1        ASSIGN_OBJ                                                   'name'
          2        OP_DATA                                                      !0
  132     3      > RETURN                                                       null

End of function __construct

Function getname:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getName
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  136     0  E >   FETCH_OBJ_R                                          ~0      'name'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
  137     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getname

Function addworker:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  addWorker
number of ops:  5
compiled vars:  !0 = $worker
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  139     0  E >   RECV                                                 !0      
  141     1        FETCH_OBJ_W                                          $1      'workers'
          2        ASSIGN_DIM                                                   $1
          3        OP_DATA                                                      !0
  142     4      > RETURN                                                       null

End of function addworker

Function getnumberworkers:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getNumberWorkers
number of ops:  6
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  146     0  E >   FETCH_OBJ_R                                          ~0      'workers'
          1        COUNT                                                ~1      ~0
          2        VERIFY_RETURN_TYPE                                           ~1
          3      > RETURN                                                       ~1
  147     4*       VERIFY_RETURN_TYPE                                           
          5*     > RETURN                                                       null

End of function getnumberworkers

Function getdepartmentsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 8
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
filename:       /in/h4J4X
function name:  getDepartmentSalary
number of ops:  13
compiled vars:  !0 = $totalSalary, !1 = $worker
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  151     0  E >   ASSIGN                                                       !0, 0
  153     1        FETCH_OBJ_R                                          ~3      'workers'
          2      > FE_RESET_R                                           $4      ~3, ->8
          3    > > FE_FETCH_R                                                   $4, !1, ->8
  154     4    >   INIT_METHOD_CALL                                             !1, 'getSalary'
          5        DO_FCALL                                          0  $5      
          6        ASSIGN_OP                                         1          !0, $5
  153     7      > JMP                                                          ->3
          8    >   FE_FREE                                                      $4
  157     9        VERIFY_RETURN_TYPE                                           !0
         10      > RETURN                                                       !0
  158    11*       VERIFY_RETURN_TYPE                                           
         12*     > RETURN                                                       null

End of function getdepartmentsalary

Function getdepartmentcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 8
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
filename:       /in/h4J4X
function name:  getDepartmentCoffee
number of ops:  13
compiled vars:  !0 = $totalCoffee, !1 = $worker
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  162     0  E >   ASSIGN                                                       !0, 0
  164     1        FETCH_OBJ_R                                          ~3      'workers'
          2      > FE_RESET_R                                           $4      ~3, ->8
          3    > > FE_FETCH_R                                                   $4, !1, ->8
  165     4    >   INIT_METHOD_CALL                                             !1, 'getCoffee'
          5        DO_FCALL                                          0  $5      
          6        ASSIGN_OP                                         1          !0, $5
  164     7      > JMP                                                          ->3
          8    >   FE_FREE                                                      $4
  168     9        VERIFY_RETURN_TYPE                                           !0
         10      > RETURN                                                       !0
  169    11*       VERIFY_RETURN_TYPE                                           
         12*     > RETURN                                                       null

End of function getdepartmentcoffee

Function getdepartmentpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 8
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
filename:       /in/h4J4X
function name:  getDepartmentPages
number of ops:  13
compiled vars:  !0 = $totalPages, !1 = $worker
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  173     0  E >   ASSIGN                                                       !0, 0
  175     1        FETCH_OBJ_R                                          ~3      'workers'
          2      > FE_RESET_R                                           $4      ~3, ->8
          3    > > FE_FETCH_R                                                   $4, !1, ->8
  176     4    >   INIT_METHOD_CALL                                             !1, 'getPages'
          5        DO_FCALL                                          0  $5      
          6        ASSIGN_OP                                         1          !0, $5
  175     7      > JMP                                                          ->3
          8    >   FE_FREE                                                      $4
  179     9        VERIFY_RETURN_TYPE                                           !0
         10      > RETURN                                                       !0
  180    11*       VERIFY_RETURN_TYPE                                           
         12*     > RETURN                                                       null

End of function getdepartmentpages

Function getdepartmentname:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getDepartmentName
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  184     0  E >   FETCH_OBJ_R                                          ~0      'name'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
  185     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getdepartmentname

Function getworkers:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getWorkers
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  189     0  E >   FETCH_OBJ_R                                          ~0      'workers'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
  190     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getworkers

Function getworker:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getWorker
number of ops:  7
compiled vars:  !0 = $key
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  192     0  E >   RECV                                                 !0      
  194     1        FETCH_OBJ_R                                          ~1      'workers'
          2        FETCH_DIM_R                                          ~2      ~1, !0
          3        VERIFY_RETURN_TYPE                                           ~2
          4      > RETURN                                                       ~2
  195     5*       VERIFY_RETURN_TYPE                                           
          6*     > RETURN                                                       null

End of function getworker

Function deleteworker:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  deleteWorker
number of ops:  4
compiled vars:  !0 = $key
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  197     0  E >   RECV                                                 !0      
  199     1        FETCH_OBJ_UNSET                                      $1      'workers'
          2        UNSET_DIM                                                    $1, !0
  200     3      > RETURN                                                       null

End of function deleteworker

Function selectworkers:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 4, Position 2 = 16
Branch analysis from position: 4
2 jumps found. (Code = 78) Position 1 = 5, Position 2 = 16
Branch analysis from position: 5
2 jumps found. (Code = 46) Position 1 = 8, Position 2 = 12
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 15
Branch analysis from position: 12
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
filename:       /in/h4J4X
function name:  selectWorkers
number of ops:  21
compiled vars:  !0 = $profession, !1 = $workersOfCertainProfession, !2 = $worker
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  202     0  E >   RECV                                                 !0      
  204     1        ASSIGN                                                       !1, <array>
  206     2        FETCH_OBJ_R                                          ~4      'workers'
          3      > FE_RESET_R                                           $5      ~4, ->16
          4    > > FE_FETCH_R                                                   $5, !2, ->16
  207     5    >   GET_CLASS                                            ~6      !2
          6        IS_EQUAL                                             ~7      !0, ~6
          7      > JMPZ_EX                                              ~7      ~7, ->12
          8    >   INIT_METHOD_CALL                                             !2, 'getBoss'
          9        DO_FCALL                                          0  $8      
         10        IS_EQUAL                                             ~9      $8, <false>
         11        BOOL                                                 ~7      ~9
         12    > > JMPZ                                                         ~7, ->15
  208    13    >   ASSIGN_DIM                                                   !1
         14        OP_DATA                                                      !2
  206    15    > > JMP                                                          ->4
         16    >   FE_FREE                                                      $5
  211    17        VERIFY_RETURN_TYPE                                           !1
         18      > RETURN                                                       !1
  212    19*       VERIFY_RETURN_TYPE                                           
         20*     > RETURN                                                       null

End of function selectworkers

Function changeboss:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  changeBoss
number of ops:  13
compiled vars:  !0 = $oldBoss, !1 = $newBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  214     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
  216     2        FETCH_OBJ_R                                          ~2      'workers'
          3        FETCH_DIM_R                                          ~3      ~2, !0
          4        INIT_METHOD_CALL                                             ~3, 'setBoss'
          5        SEND_VAL_EX                                                  <false>
          6        DO_FCALL                                          0          
  217     7        FETCH_OBJ_R                                          ~5      'workers'
          8        FETCH_DIM_R                                          ~6      ~5, !1
          9        INIT_METHOD_CALL                                             ~6, 'setBoss'
         10        SEND_VAL_EX                                                  <true>
         11        DO_FCALL                                          0          
  218    12      > RETURN                                                       null

End of function changeboss

End of class Department.

Class Company:
Function adddepartment:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  addDepartment
number of ops:  5
compiled vars:  !0 = $department
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  225     0  E >   RECV                                                 !0      
  227     1        FETCH_OBJ_W                                          $1      'departments'
          2        ASSIGN_DIM                                                   $1
          3        OP_DATA                                                      !0
  228     4      > RETURN                                                       null

End of function adddepartment

Function getdepartments:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getDepartments
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  232     0  E >   FETCH_OBJ_R                                          ~0      'departments'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
  233     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getdepartments

Function getdepartmentcount:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  getDepartmentCount
number of ops:  6
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  237     0  E >   FETCH_OBJ_R                                          ~0      'departments'
          1        COUNT                                                ~1      ~0
          2        VERIFY_RETURN_TYPE                                           ~1
          3      > RETURN                                                       ~1
  238     4*       VERIFY_RETURN_TYPE                                           
          5*     > RETURN                                                       null

End of function getdepartmentcount

End of class Company.

Class HiringWorkers:
Function addworkerstodepartment:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 24
Branch analysis from position: 9
1 jumps found. (Code = 42) Position 1 = 21
Branch analysis from position: 21
2 jumps found. (Code = 44) Position 1 = 23, Position 2 = 11
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 79
Branch analysis from position: 79
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
2 jumps found. (Code = 44) Position 1 = 23, Position 2 = 11
Branch analysis from position: 23
Branch analysis from position: 11
Branch analysis from position: 24
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 41
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 38
Branch analysis from position: 38
2 jumps found. (Code = 44) Position 1 = 40, Position 2 = 28
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 79
Branch analysis from position: 79
Branch analysis from position: 28
2 jumps found. (Code = 44) Position 1 = 40, Position 2 = 28
Branch analysis from position: 40
Branch analysis from position: 28
Branch analysis from position: 41
2 jumps found. (Code = 43) Position 1 = 43, Position 2 = 58
Branch analysis from position: 43
1 jumps found. (Code = 42) Position 1 = 55
Branch analysis from position: 55
2 jumps found. (Code = 44) Position 1 = 57, Position 2 = 45
Branch analysis from position: 57
1 jumps found. (Code = 42) Position 1 = 79
Branch analysis from position: 79
Branch analysis from position: 45
2 jumps found. (Code = 44) Position 1 = 57, Position 2 = 45
Branch analysis from position: 57
Branch analysis from position: 45
Branch analysis from position: 58
2 jumps found. (Code = 43) Position 1 = 60, Position 2 = 75
Branch analysis from position: 60
1 jumps found. (Code = 42) Position 1 = 72
Branch analysis from position: 72
2 jumps found. (Code = 44) Position 1 = 74, Position 2 = 62
Branch analysis from position: 74
1 jumps found. (Code = 42) Position 1 = 79
Branch analysis from position: 79
Branch analysis from position: 62
2 jumps found. (Code = 44) Position 1 = 74, Position 2 = 62
Branch analysis from position: 74
Branch analysis from position: 62
Branch analysis from position: 75
1 jumps found. (Code = 108) Position 1 = -2
filename:       /in/h4J4X
function name:  addWorkersToDepartment
number of ops:  80
compiled vars:  !0 = $department, !1 = $profession, !2 = $count, !3 = $rank, !4 = $isBoss, !5 = $salary, !6 = $coffee, !7 = $i
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  243     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV                                                 !3      
          4        RECV                                                 !4      
          5        RECV                                                 !5      
          6        RECV                                                 !6      
  245     7        IS_EQUAL                                                     !1, 'Manager'
          8      > JMPZ                                                         ~8, ->24
  246     9    >   ASSIGN                                                       !7, 0
         10      > JMP                                                          ->21
  247    11    >   INIT_METHOD_CALL                                             !0, 'addWorker'
         12        NEW                                                  $10     'Manager'
         13        SEND_VAR_EX                                                  !3
         14        SEND_VAR_EX                                                  !4
         15        SEND_VAR_EX                                                  !5
         16        SEND_VAR_EX                                                  !6
         17        DO_FCALL                                          0          
         18        SEND_VAR_NO_REF_EX                                           $10
         19        DO_FCALL                                          0          
  246    20        PRE_INC                                                      !7
         21    >   IS_SMALLER                                                   !7, !2
         22      > JMPNZ                                                        ~14, ->11
  245    23    > > JMP                                                          ->79
  249    24    >   IS_EQUAL                                                     !1, 'Marketer'
         25      > JMPZ                                                         ~15, ->41
  250    26    >   ASSIGN                                                       !7, 0
         27      > JMP                                                          ->38
  251    28    >   INIT_METHOD_CALL                                             !0, 'addWorker'
         29        NEW                                                  $17     'Marketer'
         30        SEND_VAR_EX                                                  !3
         31        SEND_VAR_EX                                                  !4
         32        SEND_VAR_EX                                                  !5
         33        SEND_VAR_EX                                                  !6
         34        DO_FCALL                                          0          
         35        SEND_VAR_NO_REF_EX                                           $17
         36        DO_FCALL                                          0          
  250    37        PRE_INC                                                      !7
         38    >   IS_SMALLER                                                   !7, !2
         39      > JMPNZ                                                        ~21, ->28
  249    40    > > JMP                                                          ->79
  253    41    >   IS_EQUAL                                                     !1, 'Engineer'
         42      > JMPZ                                                         ~22, ->58
  254    43    >   ASSIGN                                                       !7, 0
         44      > JMP                                                          ->55
  255    45    >   INIT_METHOD_CALL                                             !0, 'addWorker'
         46        NEW                                                  $24     'Engineer'
         47        SEND_VAR_EX                                                  !3
         48        SEND_VAR_EX                                                  !4
         49        SEND_VAR_EX                                                  !5
         50        SEND_VAR_EX                                                  !6
         51        DO_FCALL                                          0          
         52        SEND_VAR_NO_REF_EX                                           $24
         53        DO_FCALL                                          0          
  254    54        PRE_INC                                                      !7
         55    >   IS_SMALLER                                                   !7, !2
         56      > JMPNZ                                                        ~28, ->45
  253    57    > > JMP                                                          ->79
  257    58    >   IS_EQUAL                                                     !1, 'Analyst'
         59      > JMPZ                                                         ~29, ->75
  258    60    >   ASSIGN                                                       !7, 0
         61      > JMP                                                          ->72
  259    62    >   INIT_METHOD_CALL                                             !0, 'addWorker'
         63        NEW                                                  $31     'Analyst'
         64        SEND_VAR_EX                                                  !3
         65        SEND_VAR_EX                                                  !4
         66        SEND_VAR_EX                                                  !5
         67        SEND_VAR_EX                                                  !6
         68        DO_FCALL                                          0          
         69        SEND_VAR_NO_REF_EX                                           $31
         70        DO_FCALL                                          0          
  258    71        PRE_INC                                                      !7
         72    >   IS_SMALLER                                                   !7, !2
         73      > JMPNZ                                                        ~35, ->62
  257    74    > > JMP                                                          ->79
  262    75    >   NEW                                                  $36     'Exception'
         76        SEND_VAL_EX                                                  '%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%BE+%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D1%87%D0%BD%D0%BE%D0%B5+%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5+%D0%BF%D1%80%D0%BE%D1%84%D0%B5%D1%81%D1%81%D0%B8%D0%B8'
         77        DO_FCALL                                          0          
         78      > THROW                                             0          $36
  264    79    > > RETURN                                                       null

End of function addworkerstodepartment

End of class HiringWorkers.

Class Tabel:
Function printtabel:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 13, Position 2 = 42
Branch analysis from position: 13
2 jumps found. (Code = 78) Position 1 = 14, Position 2 = 42
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
Branch analysis from position: 42
2 jumps found. (Code = 77) Position 1 = 52, Position 2 = 72
Branch analysis from position: 52
2 jumps found. (Code = 78) Position 1 = 53, Position 2 = 72
Branch analysis from position: 53
1 jumps found. (Code = 42) Position 1 = 52
Branch analysis from position: 52
Branch analysis from position: 72
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 72
Branch analysis from position: 42
filename:       /in/h4J4X
function name:  printTabel
number of ops:  126
compiled vars:  !0 = $company, !1 = $department, !2 = $count, !3 = $salary, !4 = $coffee, !5 = $pages, !6 = $salaryDividePages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  269     0  E >   RECV                                                 !0      
  271     1        INIT_METHOD_CALL                                             'printRow'
          2        SEND_VAL_EX                                                  '%D0%94%D0%B5%D0%BF%D0%B0%D1%80%D1%82%D0%B0%D0%BC%D0%B5%D0%BD%D1%82'
          3        SEND_VAL_EX                                                  '%D1%81%D0%BE%D1%82%D1%80.'
          4        SEND_VAL_EX                                                  '%D1%82%D1%83%D0%B3%D1%80.'
          5        SEND_VAL_EX                                                  '%D0%BA%D0%BE%D1%84%D0%B5'
          6        SEND_VAL_EX                                                  '%D1%81%D1%82%D1%80'
          7        SEND_VAL_EX                                                  '%D1%82%D1%83%D0%B3%D1%80.%2F%D1%81%D1%82%D1%80.'
          8        DO_FCALL                                          0          
  273     9        ECHO                                                         '%0A'
  275    10        INIT_METHOD_CALL                                             !0, 'getDepartments'
         11        DO_FCALL                                          0  $8      
         12      > FE_RESET_R                                           $9      $8, ->42
         13    > > FE_FETCH_R                                                   $9, !1, ->42
  276    14    >   INIT_METHOD_CALL                                             'printRow'
         15        INIT_METHOD_CALL                                             !1, 'getDepartmentName'
         16        DO_FCALL                                          0  $10     
         17        SEND_VAR_NO_REF_EX                                           $10
         18        INIT_METHOD_CALL                                             !1, 'getNumberWorkers'
         19        DO_FCALL                                          0  $11     
         20        SEND_VAR_NO_REF_EX                                           $11
         21        INIT_METHOD_CALL                                             !1, 'getDepartmentSalary'
         22        DO_FCALL                                          0  $12     
         23        SEND_VAR_NO_REF_EX                                           $12
         24        INIT_METHOD_CALL                                             !1, 'getDepartmentCoffee'
         25        DO_FCALL                                          0  $13     
         26        SEND_VAR_NO_REF_EX                                           $13
         27        INIT_METHOD_CALL                                             !1, 'getDepartmentPages'
         28        DO_FCALL                                          0  $14     
         29        SEND_VAR_NO_REF_EX                                           $14
         30        INIT_FCALL                                                   'round'
         31        INIT_METHOD_CALL                                             !1, 'getDepartmentSalary'
         32        DO_FCALL                                          0  $15     
         33        INIT_METHOD_CALL                                             !1, 'getDepartmentPages'
         34        DO_FCALL                                          0  $16     
         35        DIV                                                  ~17     $15, $16
         36        SEND_VAL                                                     ~17
         37        SEND_VAL                                                     1
         38        DO_ICALL                                             $18     
         39        SEND_VAR_NO_REF_EX                                           $18
         40        DO_FCALL                                          0          
  275    41      > JMP                                                          ->13
         42    >   FE_FREE                                                      $9
  279    43        ECHO                                                         '%0A'
  281    44        ASSIGN                                                       !2, 0
  282    45        ASSIGN                                                       !3, 0
  283    46        ASSIGN                                                       !4, 0
  284    47        ASSIGN                                                       !5, 0
  285    48        ASSIGN                                                       !6, 0
  287    49        INIT_METHOD_CALL                                             !0, 'getDepartments'
         50        DO_FCALL                                          0  $25     
         51      > FE_RESET_R                                           $26     $25, ->72
         52    > > FE_FETCH_R                                                   $26, !1, ->72
  288    53    >   INIT_METHOD_CALL                                             !1, 'getNumberWorkers'
         54        DO_FCALL                                          0  $27     
         55        ASSIGN_OP                                         1          !2, $27
  289    56        INIT_METHOD_CALL                                             !1, 'getDepartmentSalary'
         57        DO_FCALL                                          0  $29     
         58        ASSIGN_OP                                         1          !3, $29
  290    59        INIT_METHOD_CALL                                             !1, 'getDepartmentCoffee'
         60        DO_FCALL                                          0  $31     
         61        ASSIGN_OP                                         1          !4, $31
  291    62        INIT_METHOD_CALL                                             !1, 'getDepartmentPages'
         63        DO_FCALL                                          0  $33     
         64        ASSIGN_OP                                         1          !5, $33
  292    65        INIT_FCALL                                                   'round'
         66        DIV                                                  ~35     !3, !5
         67        SEND_VAL                                                     ~35
         68        SEND_VAL                                                     1
         69        DO_ICALL                                             $36     
         70        ASSIGN_OP                                         1          !6, $36
  287    71      > JMP                                                          ->52
         72    >   FE_FREE                                                      $26
  295    73        INIT_METHOD_CALL                                             'printRow'
         74        SEND_VAL_EX                                                  '%D0%92%D1%81%D0%B5%D0%B3%D0%BE'
         75        SEND_VAR_EX                                                  !2
         76        SEND_VAR_EX                                                  !3
         77        SEND_VAR_EX                                                  !4
         78        SEND_VAR_EX                                                  !5
         79        SEND_VAR_EX                                                  !6
         80        DO_FCALL                                          0          
  297    81        INIT_METHOD_CALL                                             'printRow'
         82        SEND_VAL_EX                                                  '%D0%A1%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5'
         83        INIT_FCALL                                                   'round'
         84        INIT_METHOD_CALL                                             !0, 'getDepartmentCount'
         85        DO_FCALL                                          0  $39     
         86        DIV                                                  ~40     !2, $39
         87        SEND_VAL                                                     ~40
         88        SEND_VAL                                                     1
         89        DO_ICALL                                             $41     
         90        SEND_VAR_NO_REF_EX                                           $41
         91        INIT_FCALL                                                   'round'
         92        INIT_METHOD_CALL                                             !0, 'getDepartmentCount'
         93        DO_FCALL                                          0  $42     
         94        DIV                                                  ~43     !3, $42
         95        SEND_VAL                                                     ~43
         96        SEND_VAL                                                     1
         97        DO_ICALL                                             $44     
         98        SEND_VAR_NO_REF_EX                                           $44
         99        INIT_FCALL                                                   'round'
        100        INIT_METHOD_CALL                                             !0, 'getDepartmentCount'
        101        DO_FCALL                                          0  $45     
        102        DIV                                                  ~46     !4, $45
        103        SEND_VAL                                                     ~46
        104        SEND_VAL                                                     1
        105        DO_ICALL                                             $47     
        106        SEND_VAR_NO_REF_EX                                           $47
        107        INIT_FCALL                                                   'round'
        108        INIT_METHOD_CALL                                             !0, 'getDepartmentCount'
        109        DO_FCALL                                          0  $48     
        110        DIV                                                  ~49     !5, $48
        111        SEND_VAL                                                     ~49
        112        SEND_VAL                                                     1
        113        DO_ICALL                                             $50     
        114        SEND_VAR_NO_REF_EX                                           $50
        115        INIT_FCALL                                                   'round'
        116        INIT_METHOD_CALL                                             !0, 'getDepartmentCount'
        117        DO_FCALL                                          0  $51     
        118        DIV                                                  ~52     !6, $51
        119        SEND_VAL                                                     ~52
        120        SEND_VAL                                                     1
        121        DO_ICALL                                             $53     
        122        SEND_VAR_NO_REF_EX                                           $53
        123        DO_FCALL                                          0          
  299   124        ECHO                                                         '%0A'
  300   125      > RETURN                                                       null

End of function printtabel

Function padleft:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  padLeft
number of ops:  13
compiled vars:  !0 = $value, !1 = $columnLength
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  302     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
  304     2        ECHO                                                         !0
  305     3        INIT_FCALL                                                   'str_repeat'
          4        SEND_VAL                                                     '+'
          5        INIT_FCALL                                                   'mb_strlen'
          6        SEND_VAR                                                     !0
          7        DO_ICALL                                             $2      
          8        SUB                                                  ~3      !1, $2
          9        SEND_VAL                                                     ~3
         10        DO_ICALL                                             $4      
         11        ECHO                                                         $4
  306    12      > RETURN                                                       null

End of function padleft

Function printrow:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/h4J4X
function name:  printRow
number of ops:  44
compiled vars:  !0 = $name, !1 = $count, !2 = $salary, !3 = $coffee, !4 = $pages, !5 = $salaryDividePages, !6 = $col1, !7 = $col2, !8 = $col3, !9 = $col4, !10 = $col5, !11 = $col6
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  308     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV                                                 !3      
          4        RECV                                                 !4      
          5        RECV                                                 !5      
  310     6        ASSIGN                                                       !6, 15
  311     7        ASSIGN                                                       !7, 10
  312     8        ASSIGN                                                       !8, 10
  313     9        ASSIGN                                                       !9, 8
  314    10        ASSIGN                                                       !10, 8
  315    11        ASSIGN                                                       !11, 15
  317    12        INIT_METHOD_CALL                                             'padLeft'
         13        SEND_VAR                                                     !0
         14        SEND_VAR                                                     !6
         15        DO_FCALL                                          0  $18     
         16        INIT_METHOD_CALL                                             'padLeft'
         17        SEND_VAR                                                     !1
         18        SEND_VAR                                                     !7
         19        DO_FCALL                                          0  $19     
         20        CONCAT                                               ~20     $18, $19
         21        INIT_METHOD_CALL                                             'padLeft'
         22        SEND_VAR                                                     !2
         23        SEND_VAR                                                     !8
         24        DO_FCALL                                          0  $21     
         25        CONCAT                                               ~22     ~20, $21
         26        INIT_METHOD_CALL                                             'padLeft'
         27        SEND_VAR                                                     !3
         28        SEND_VAR                                                     !9
         29        DO_FCALL                                          0  $23     
         30        CONCAT                                               ~24     ~22, $23
         31        INIT_METHOD_CALL                                             'padLeft'
         32        SEND_VAR                                                     !4
         33        SEND_VAR                                                     !10
         34        DO_FCALL                                          0  $25     
         35        CONCAT                                               ~26     ~24, $25
         36        INIT_METHOD_CALL                                             'padLeft'
         37        SEND_VAR                                                     !5
         38        SEND_VAR                                                     !11
         39        DO_FCALL                                          0  $27     
         40        CONCAT                                               ~28     ~26, $27
         41        CONCAT                                               ~29     ~28, '%0A'
         42        ECHO                                                         ~29
  318    43      > RETURN                                                       null

End of function printrow

End of class Tabel.

Class AnticrisisService:
Function cutengineers:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 4, Position 2 = 76
Branch analysis from position: 4
2 jumps found. (Code = 78) Position 1 = 5, Position 2 = 76
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 17
Branch analysis from position: 41
2 jumps found. (Code = 44) Position 1 = 43, Position 2 = 14
Branch analysis from position: 43
2 jumps found. (Code = 77) Position 1 = 57, Position 2 = 74
Branch analysis from position: 57
2 jumps found. (Code = 78) Position 1 = 58, Position 2 = 74
Branch analysis from position: 58
2 jumps found. (Code = 43) Position 1 = 62, Position 2 = 69
Branch analysis from position: 62
2 jumps found. (Code = 43) Position 1 = 72, Position 2 = 73
Branch analysis from position: 72
1 jumps found. (Code = 42) Position 1 = 74
Branch analysis from position: 74
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 73
1 jumps found. (Code = 42) Position 1 = 57
Branch analysis from position: 57
Branch analysis from position: 69
Branch analysis from position: 74
Branch analysis from position: 74
Branch analysis from position: 14
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 36
Branch analysis from position: 26
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 17
Branch analysis from position: 41
Branch analysis from position: 17
Branch analysis from position: 36
Branch analysis from position: 76
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 76
filename:       /in/h4J4X
function name:  cutEngineers
number of ops:  78
compiled vars:  !0 = $company, !1 = $department, !2 = $workersOfCertainProfession, !3 = $numberOfPermutations, !4 = $i, !5 = $buf, !6 = $worker, !7 = $key
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  323     0  E >   RECV                                                 !0      
  325     1        INIT_METHOD_CALL                                             !0, 'getDepartments'
          2        DO_FCALL                                          0  $8      
          3      > FE_RESET_R                                           $9      $8, ->76
          4    > > FE_FETCH_R                                                   $9, !1, ->76
  326     5    >   ASSIGN                                                       !2, <array>
  327     6        INIT_METHOD_CALL                                             !1, 'selectWorkers'
          7        SEND_VAL_EX                                                  'Engineer'
          8        DO_FCALL                                          0  $11     
          9        ASSIGN                                                       !2, $11
  329    10        COUNT                                                ~13     !2
         11        IS_EQUAL                                                     ~13, 0
         12      > JMPZ                                                         ~14, ->14
  330    13    > > JMP                                                          ->4
  334    14    >   ASSIGN                                                       !3, 0
  336    15        ASSIGN                                                       !4, 0
         16      > JMP                                                          ->37
  337    17    >   FETCH_DIM_R                                          ~17     !2, !4
         18        INIT_METHOD_CALL                                             ~17, 'getRank'
         19        DO_FCALL                                          0  $18     
         20        ADD                                                  ~19     !4, 1
         21        FETCH_DIM_R                                          ~20     !2, ~19
         22        INIT_METHOD_CALL                                             ~20, 'getRank'
         23        DO_FCALL                                          0  $21     
         24        IS_SMALLER                                                   $21, $18
         25      > JMPZ                                                         ~22, ->36
  338    26    >   FETCH_DIM_R                                          ~23     !2, !4
         27        ASSIGN                                                       !5, ~23
  339    28        ADD                                                  ~26     !4, 1
         29        FETCH_DIM_R                                          ~27     !2, ~26
         30        ASSIGN_DIM                                                   !2, !4
         31        OP_DATA                                                      ~27
  340    32        ADD                                                  ~28     !4, 1
         33        ASSIGN_DIM                                                   !2, ~28
         34        OP_DATA                                                      !5
  342    35        PRE_INC                                                      !3
  336    36    >   PRE_INC                                                      !4
         37    >   COUNT                                                ~32     !2
         38        SUB                                                  ~33     ~32, 2
         39        IS_SMALLER                                                   !4, ~33
         40      > JMPNZ                                                        ~34, ->17
  345    41    >   IS_NOT_EQUAL                                                 !3, 0
         42      > JMPNZ                                                        ~35, ->14
  347    43    >   INIT_FCALL                                                   'array_slice'
         44        SEND_VAR                                                     !2
         45        SEND_VAL                                                     0
         46        INIT_FCALL                                                   'ceil'
         47        COUNT                                                ~36     !2
         48        DIV                                                  ~37     ~36, 2.5
         49        SEND_VAL                                                     ~37
         50        DO_ICALL                                             $38     
         51        SEND_VAR                                                     $38
         52        DO_ICALL                                             $39     
         53        ASSIGN                                                       !2, $39
  349    54        INIT_METHOD_CALL                                             !1, 'getWorkers'
         55        DO_FCALL                                          0  $41     
         56      > FE_RESET_R                                           $42     $41, ->74
         57    > > FE_FETCH_R                                           ~43     $42, !6, ->74
         58    >   ASSIGN                                                       !7, ~43
  350    59        FETCH_DIM_R                                          ~45     !2, 0
         60        IS_EQUAL                                                     !6, ~45
         61      > JMPZ                                                         ~46, ->69
  351    62    >   INIT_METHOD_CALL                                             !1, 'deleteWorker'
         63        SEND_VAR_EX                                                  !7
         64        DO_FCALL                                          0          
  353    65        UNSET_DIM                                                    !2, 0
  354    66        INIT_FCALL                                                   'sort'
         67        SEND_REF                                                     !2
         68        DO_ICALL                                                     
  357    69    >   COUNT                                                ~49     !2
         70        IS_EQUAL                                                     ~49, 0
         71      > JMPZ                                                         ~50, ->73
  358    72    > > JMP                                                          ->74
  349    73    > > JMP                                                          ->57
         74    >   FE_FREE                                                      $42
  325    75      > JMP                                                          ->4
         76    >   FE_FREE                                                      $9
  362    77      > RETURN                                                       null

End of function cutengineers

Function changedataanalytics:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 4, Position 2 = 57
Branch analysis from position: 4
2 jumps found. (Code = 78) Position 1 = 5, Position 2 = 57
Branch analysis from position: 5
2 jumps found. (Code = 77) Position 1 = 12, Position 2 = 36
Branch analysis from position: 12
2 jumps found. (Code = 78) Position 1 = 13, Position 2 = 36
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 35
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 35
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 31, Position 2 = 35
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
Branch analysis from position: 35
Branch analysis from position: 35
Branch analysis from position: 35
Branch analysis from position: 36
2 jumps found. (Code = 46) Position 1 = 46, Position 2 = 48
Branch analysis from position: 46
2 jumps found. (Code = 43) Position 1 = 49, Position 2 = 56
Branch analysis from position: 49
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 56
Branch analysis from position: 48
Branch analysis from position: 36
Branch analysis from position: 57
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 57
filename:       /in/h4J4X
function name:  changeDataAnalytics
number of ops:  59
compiled vars:  !0 = $company, !1 = $department, !2 = $countOfBasicAnalyst, !3 = $keyOfBestAnalyst, !4 = $rankOfBestAnalyst, !5 = $keyOfWorker, !6 = $worker
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  364     0  E >   RECV                                                 !0      
  366     1        INIT_METHOD_CALL                                             !0, 'getDepartments'
          2        DO_FCALL                                          0  $7      
          3      > FE_RESET_R                                           $8      $7, ->57
          4    > > FE_FETCH_R                                                   $8, !1, ->57
  367     5    >   ASSIGN                                                       !2, 0
  368     6        ASSIGN                                                       !3, 0
  369     7        ASSIGN                                                       !4, 0
  370     8        ASSIGN                                                       !5, -1
  372     9        INIT_METHOD_CALL                                             !1, 'getWorkers'
         10        DO_FCALL                                          0  $13     
         11      > FE_RESET_R                                           $14     $13, ->36
         12    > > FE_FETCH_R                                                   $14, !6, ->36
  373    13    >   PRE_INC                                                      !5
  375    14        INSTANCEOF                                                   !6, 'Analyst'
         15      > JMPZ                                                         ~16, ->35
  377    16    >   INIT_METHOD_CALL                                             !6, 'setSalary'
         17        SEND_VAL_EX                                                  1100
         18        DO_FCALL                                          0          
  378    19        INIT_METHOD_CALL                                             !6, 'setCoffee'
         20        SEND_VAL_EX                                                  75
         21        DO_FCALL                                          0          
  380    22        INIT_METHOD_CALL                                             !6, 'getBoss'
         23        DO_FCALL                                          0  $19     
         24        IS_EQUAL                                                     $19, <false>
         25      > JMPZ                                                         ~20, ->35
  381    26    >   PRE_INC                                                      !2
  383    27        INIT_METHOD_CALL                                             !6, 'getRank'
         28        DO_FCALL                                          0  $22     
         29        IS_SMALLER                                                   !4, $22
         30      > JMPZ                                                         ~23, ->35
  384    31    >   INIT_METHOD_CALL                                             !6, 'getRank'
         32        DO_FCALL                                          0  $24     
         33        ASSIGN                                                       !4, $24
  385    34        ASSIGN                                                       !3, !5
  372    35    > > JMP                                                          ->12
         36    >   FE_FREE                                                      $14
  391    37        INIT_METHOD_CALL                                             !1, 'getWorker'
         38        INIT_METHOD_CALL                                             !1, 'getNumberWorkers'
         39        DO_FCALL                                          0  $27     
         40        SUB                                                  ~28     $27, 1
         41        SEND_VAL_EX                                                  ~28
         42        DO_FCALL                                          0  $29     
         43        INSTANCEOF                                           ~30     $29, 'Analyst'
         44        BOOL_NOT                                             ~31     ~30
         45      > JMPZ_EX                                              ~31     ~31, ->48
         46    >   IS_SMALLER                                           ~32     0, !2
         47        BOOL                                                 ~31     ~32
         48    > > JMPZ                                                         ~31, ->56
  392    49    >   INIT_METHOD_CALL                                             !1, 'changeBoss'
         50        INIT_METHOD_CALL                                             !1, 'getNumberWorkers'
         51        DO_FCALL                                          0  $33     
         52        SUB                                                  ~34     $33, 1
         53        SEND_VAL_EX                                                  ~34
         54        SEND_VAR_EX                                                  !3
         55        DO_FCALL                                          0          
  366    56    > > JMP                                                          ->4
         57    >   FE_FREE                                                      $8
  395    58      > RETURN                                                       null

End of function changedataanalytics

Function increasemanagers:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 4, Position 2 = 86
Branch analysis from position: 4
2 jumps found. (Code = 78) Position 1 = 5, Position 2 = 86
Branch analysis from position: 5
2 jumps found. (Code = 77) Position 1 = 10, Position 2 = 29
Branch analysis from position: 10
2 jumps found. (Code = 78) Position 1 = 11, Position 2 = 29
Branch analysis from position: 11
2 jumps found. (Code = 46) Position 1 = 13, Position 2 = 17
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 20
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 28
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 10
Branch analysis from position: 10
Branch analysis from position: 20
2 jumps found. (Code = 46) Position 1 = 22, Position 2 = 26
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 28
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 10
Branch analysis from position: 10
Branch analysis from position: 28
Branch analysis from position: 26
Branch analysis from position: 17
Branch analysis from position: 29
2 jumps found. (Code = 77) Position 1 = 43, Position 2 = 84
Branch analysis from position: 43
2 jumps found. (Code = 78) Position 1 = 44, Position 2 = 84
Branch analysis from position: 44
2 jumps found. (Code = 43) Position 1 = 47, Position 2 = 48
Branch analysis from position: 47
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 48
2 jumps found. (Code = 46) Position 1 = 50, Position 2 = 54
Branch analysis from position: 50
2 jumps found. (Code = 46) Position 1 = 55, Position 2 = 57
Branch analysis from position: 55
2 jumps found. (Code = 43) Position 1 = 58, Position 2 = 66
Branch analysis from position: 58
1 jumps found. (Code = 42) Position 1 = 83
Branch analysis from position: 83
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
Branch analysis from position: 66
2 jumps found. (Code = 46) Position 1 = 68, Position 2 = 72
Branch analysis from position: 68
2 jumps found. (Code = 46) Position 1 = 73, Position 2 = 75
Branch analysis from position: 73
2 jumps found. (Code = 43) Position 1 = 76, Position 2 = 83
Branch analysis from position: 76
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
Branch analysis from position: 83
Branch analysis from position: 75
Branch analysis from position: 72
Branch analysis from position: 57
Branch analysis from position: 54
Branch analysis from position: 84
Branch analysis from position: 84
Branch analysis from position: 29
Branch analysis from position: 86
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 86
filename:       /in/h4J4X
function name:  increaseManagers
number of ops:  88
compiled vars:  !0 = $company, !1 = $department, !2 = $manager1RangCount, !3 = $manager2RangCount, !4 = $worker
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  397     0  E >   RECV                                                 !0      
  399     1        INIT_METHOD_CALL                                             !0, 'getDepartments'
          2        DO_FCALL                                          0  $5      
          3      > FE_RESET_R                                           $6      $5, ->86
          4    > > FE_FETCH_R                                                   $6, !1, ->86
  400     5    >   ASSIGN                                                       !2, 0
  401     6        ASSIGN                                                       !3, 0
  403     7        INIT_METHOD_CALL                                             !1, 'getWorkers'
          8        DO_FCALL                                          0  $9      
          9      > FE_RESET_R                                           $10     $9, ->29
         10    > > FE_FETCH_R                                                   $10, !4, ->29
  404    11    >   INSTANCEOF                                           ~11     !4, 'Manager'
         12      > JMPZ_EX                                              ~11     ~11, ->17
         13    >   INIT_METHOD_CALL                                             !4, 'getRank'
         14        DO_FCALL                                          0  $12     
         15        IS_EQUAL                                             ~13     $12, 1
         16        BOOL                                                 ~11     ~13
         17    > > JMPZ                                                         ~11, ->20
  405    18    >   PRE_INC                                                      !2
  404    19      > JMP                                                          ->28
  406    20    >   INSTANCEOF                                           ~15     !4, 'Manager'
         21      > JMPZ_EX                                              ~15     ~15, ->26
         22    >   INIT_METHOD_CALL                                             !4, 'getRank'
         23        DO_FCALL                                          0  $16     
         24        IS_EQUAL                                             ~17     $16, 2
         25        BOOL                                                 ~15     ~17
         26    > > JMPZ                                                         ~15, ->28
  407    27    >   PRE_INC                                                      !3
  403    28    > > JMP                                                          ->10
         29    >   FE_FREE                                                      $10
  411    30        INIT_FCALL                                                   'ceil'
         31        DIV                                                  ~19     !2, 2
         32        SEND_VAL                                                     ~19
         33        DO_ICALL                                             $20     
         34        ASSIGN                                                       !2, $20
  412    35        INIT_FCALL                                                   'ceil'
         36        DIV                                                  ~22     !3, 2
         37        SEND_VAL                                                     ~22
         38        DO_ICALL                                             $23     
         39        ASSIGN                                                       !3, $23
  414    40        INIT_METHOD_CALL                                             !1, 'getWorkers'
         41        DO_FCALL                                          0  $25     
         42      > FE_RESET_R                                           $26     $25, ->84
         43    > > FE_FETCH_R                                                   $26, !4, ->84
  416    44    >   ADD                                                  ~27     !2, !3
         45        IS_EQUAL                                                     ~27, 0
         46      > JMPZ                                                         ~28, ->48
  417    47    > > JMP                                                          ->84
  420    48    >   INSTANCEOF                                           ~29     !4, 'Manager'
         49      > JMPZ_EX                                              ~29     ~29, ->54
         50    >   INIT_METHOD_CALL                                             !4, 'getRank'
         51        DO_FCALL                                          0  $30     
         52        IS_EQUAL                                             ~31     $30, 1
         53        BOOL                                                 ~29     ~31
         54    > > JMPZ_EX                                              ~29     ~29, ->57
         55    >   IS_SMALLER                                           ~32     0, !2
         56        BOOL                                                 ~29     ~32
         57    > > JMPZ                                                         ~29, ->66
  421    58    >   INIT_METHOD_CALL                                             !4, 'setRank'
         59        INIT_METHOD_CALL                                             !4, 'getRank'
         60        DO_FCALL                                          0  $33     
         61        ADD                                                  ~34     $33, 1
         62        SEND_VAL_EX                                                  ~34
         63        DO_FCALL                                          0          
  422    64        PRE_DEC                                                      !2
  420    65      > JMP                                                          ->83
  423    66    >   INSTANCEOF                                           ~37     !4, 'Manager'
         67      > JMPZ_EX                                              ~37     ~37, ->72
         68    >   INIT_METHOD_CALL                                             !4, 'getRank'
         69        DO_FCALL                                          0  $38     
         70        IS_EQUAL                                             ~39     $38, 2
         71        BOOL                                                 ~37     ~39
         72    > > JMPZ_EX                                              ~37     ~37, ->75
         73    >   IS_SMALLER                                           ~40     0, !3
         74        BOOL                                                 ~37     ~40
         75    > > JMPZ                                                         ~37, ->83
  424    76    >   INIT_METHOD_CALL                                             !4, 'setRank'
         77        INIT_METHOD_CALL                                             !4, 'getRank'
         78        DO_FCALL                                          0  $41     
         79        ADD                                                  ~42     $41, 1
         80        SEND_VAL_EX                                                  ~42
         81        DO_FCALL                                          0          
  425    82        PRE_DEC                                                      !3
  414    83    > > JMP                                                          ->43
         84    >   FE_FREE                                                      $26
  399    85      > JMP                                                          ->4
         86    >   FE_FREE                                                      $6
  429    87      > RETURN                                                       null

End of function increasemanagers

End of class AnticrisisService.

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
177.22 ms | 1778 KiB | 21 Q