func: function liquidate(uint256 _amount) public maxTotalWeightOnly {
          uint256 supply = token.totalSupply();
  
          
          token.destroy(msg.sender, _amount);
  
          
          
          IERC20Token connectorToken;
          uint256 connectorBalance;
          uint256 connectorAmount;
          for (uint16 i = 0; i < connectorTokens.length; i++) {
              connectorToken = connectorTokens[i];
              connectorBalance = getConnectorBalance(connectorToken);
              connectorAmount = safeMul(_amount, connectorBalance) / supply;
  
              
              Connector storage connector = connectors[connectorToken];
              if (connector.isVirtualBalanceEnabled)
                  connector.virtualBalance = safeSub(connector.virtualBalance, connectorAmount);
  
              
              
              assert(connectorToken.transfer(msg.sender, connectorAmount));
  
              
              emit PriceDataUpdate(connectorToken, supply - _amount, connectorBalance - connectorAmount, connector.weight);
          }
      }