code: def set_encrypt_kit(self, kit):
      self._encrypt_kit = kit
      self._en_key_length = kit.key_size
      (
          self._sk,
          self._pk,
          self._coder,
          self._evaluator,
          self._encryptor,
      ) = (
          kit.sk,
          kit.pk,
          kit.coder,
          kit.evaluator,
          kit.get_tensor_encryptor(),
      )
      self._decryptor = kit.get_tensor_decryptor()
      logger.info("encrypt kit setup through setter")
  
imports: from fate.ml.ensemble.learner.decision_tree.tree_core.decision_tree import DecisionTree, Node, _update_sample_pos_on_local_nodes, _merge_sample_pos
  from fate.ml.ensemble.learner.decision_tree.tree_core.hist import SBTHistogramBuilder
  from fate.ml.ensemble.learner.decision_tree.tree_core.splitter import SBTSplitter
  from fate.ml.ensemble.learner.decision_tree.tree_core.loss import get_task_info
  from fate.ml.ensemble.learner.decision_tree.tree_core.decision_tree import ALL_FEAT, GUEST_FEAT_ONLY
  from fate.ml.utils.predict_tools import BINARY, MULTI, REGRESSION
  from fate.arch import Context
  from fate.arch.dataframe import DataFrame
  from typing import List
  import functools
  import logging
  import pandas
  import torch
  import math
label_desc: Use image node_id 2 for calling the HeteroDecisionTreeGuest obj's underlying member method code with example usage: obj.set_encrypt_kit(kit) without return types